Laravel Learning Path

This repository contains the ordered list of Laravel topics to learn, step-by-step, with related links.

If you want to add a topic, link, or any other suggestion, please open Issues or Pull Requests.

Notice 1: The same table below is also available as a database, so you would be able to transform it to any other format you want - PDF, chart, etc. See file roadmap.sql

Notice 2: This content was filled into an adminpanel generated with our QuickAdminPanel - here's a video demo of that process on Youtube. By purchasing QuickAdminPanel, you support my free initiatives, like this Roadmap.


Beginner Level

Create your very first simple Laravel project

Topic Learning Links
Routing and Controllers: Basics
Callback Functions and Route::view() Official Docs: Basic Routing
Official Docs: View Routes
Routing to a Single Controller Method Official Docs: Basic Controllers with Routes
Route Parameters Official Docs: Route Parameters
Route Naming Official Docs: Names Routes
Route Groups Official Docs: Route Groups
Blade Basics
Displaying Variables in Blade Official Docs: Blade: Displaying Data
Blade If-Else and Loop Structures Official Docs: Blade: If-Statements
Official Docs: Blade Loops
Layout: @include, @extends, @section, @yield Official Docs: Blade: Layout Using Template Inheritance
Blade Components Official Docs: Blade Components
Video: Laravel Blade Components: Two Examples - Laravel Breeze/UI
Auth Basics
Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap) Official Docs: Laravel Breeze Official Documentation
Official Docs: Laravel UI: Official Github Page
Default Auth Model and Access its Fields from Anywhere Official Docs: Retrieving the Authenticated User
Check Auth in Controller / Blade Official Docs: Determining If The Current User Is Authenticated
Official Docs: Blade: Authentication Directives
Auth Middleware Official Docs: Protecting Routes
Database Basics
Database Migrations Official Docs: Database Migrations
Basic Eloquent Model and MVC: Controller -> Model -> View Official Docs: Eloquent: Getting Started
Eloquent Relationships: belongsTo / hasMany / belongsToMany Official Docs: Eloquent Relationships: One-to-Many
Official Docs: Eloquent Relationships: BelongsTo
Official Docs: Eloquent Relationships: Many-to-Many
Eager Loading and N+1 Query Problem Official Docs: Relationships: Eager Loading
Full Simple CRUD
Route Resource and Resourceful Controllers Official Docs: Laravel Resource Controllers
Article: Simple Laravel CRUD with Resource Controllers [digitalocean.com]
Forms, Validation and Form Requests Official Docs: Laravel Validation
File Uploads and Storage Folder Basics Official Docs: Filesystem: File Uploads
Table Pagination Official Docs: Database Pagination

Advanced Beginner Level

The goal of this level is to find the first job or freelance gig

Topic Learning Links
Routing Advanced
Route Model Binding Official Docs: Route Model Binding
Route Redirect Official Docs: Redirect Routes
Middleware
Create Custom Middleware Class Official Docs: Defining Middleware
Database Advanced
Database Seeders and Factories Official Docs: Database: Seeding
Official Docs: Defining Model Factories
Eloquent Query Scopes Official Docs: Eloquent: Query Scopes
Polymorphic relationships Official Docs: Polymorphic Relationships
Eloquent Accessors and Mutators Official Docs: Accessors & Mutators
Eloquent Collections Official Docs: Eloquent Collections
Official Docs: General Laravel Collections
Soft Deletes Official Docs: Soft Deleting
Auth Advanced
Authorization: Roles/Permissions, Gates, Policies Official Docs: Authorization
Video: Laravel Roles and Permissions: All CORE Things You Need To Know
Authorization: Extra Packages - Spatie Permission, Bouncer, etc Video: Spatie Laravel Permission: Example Project Review
Article: Two Best Laravel Packages to Manage Roles/Permissions
Official Docs: spatie/laravel-permission
Official Docs: JosephSilber/bouncer
Authentication: Email Verification Official Docs: Email Verification
File Uploads Advanced
Drivers and Disks, Example of Amazon S3 Official Docs: File Storage
Video: Laravel: How to Upload Files to Amazon S3
Extra Packages: Spatie Medialibrary, Intervention Image, etc Official Docs: spatie/laravel-medialibrary
Official Docs: intervention/image
API Basics
API Routes and Controllers Official Docs: API Resource Routes
Official Docs: Default Route Files
Working with API Clients: Postman or Alternatives Official Docs: Postman API Client
API Eloquent Resources Official Docs: Eloquent: API Resources
API Auth with Sanctum Official Docs: Laravel Sanctum
API Error Handling and Status Codes Video: Laravel API 404 Error: Customize Exception Message
Article: HTTP Status Codes
Debugging Errors
Log Files in Laravel Official Docs: Logging
Try-Catch and Laravel Exceptions Official Docs: Error Handling
Video: Exceptions in Laravel: Why/How to Use and Create Your Own
Local Debugging Tools: Debugbar, Telescope, Ray Official Docs: barryvdh/laravel-debugbar
Official Docs: Laravel Telescope
Official Docs: Spatie Ray (Premium Tool)
Video: Debug Eloquent Queries from API: Laravel Telescope
Video: Spatie Ray: Laravel Debugging with Pleasure
Customizing Error Pages and Messages Official Docs: Custom HTTP Error Pages
Video: Laravel Error Pages: Change Text or Customize Layouts
(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar Official Docs: Bugsnag Laravel
Official Docs: Flare Homepage
Official Docs: Sentry Laravel
Official Docs: Rollbar Laravel
Video: Bug Tracking in Laravel: Bugsnag vs Flare [Demo/Review]
Sending Email
Mailables and Mail Facade Official Docs: Mail & Mailables
Configure Drivers/Services: Mailgun, Mailtrap, etc Article: How to Send Email From Laravel, and Why We Need 3rd Party Providers For It
Official Docs: Mail: Drivers Prerequisites
Notifications System: Email, SMS, Slack, etc. Official Docs: Notifications
Automated Testing with PHPUnit
"Smoke" Tests to Check if Pages are Loading Official Docs: Testing: Getting Started
Course: Laravel: PHPUnit Testing for Beginners
Configure Testing Database and Test CRUD Operations Official Docs: Database Testing
Deployment and Version Control
Git Version Control Official Docs: Git
Video: Git in Laravel. Part 1 - Branches: Main, Develop and Feature
Deployment on Live Servers Official Docs: Deployment
Article: How to Deploy Laravel Projects to Live Server: The Ultimate Guide
Article: What Server is Needed to Deploy Laravel Projects
Video: How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer

(WORK IN PROGRESS) Mid Level

Topic Learning Links
(optional) Starter Kits: Laravel Jetstream and Fortify
Events and Listeners
Routing Extra Features
Route Caching
Rate Limiting
Various Extra Features
Invokable controllers
Blade Extra Features
Custom Blade Directives
API Advanced
Front-end Basics: Vue.js or Similar Alternative
Jobs and Queues
Laravel Horizon (optional, if you use Redis) Official Docs: Laravel Horizon
Payments

(TO BE DONE LATER) Senior Level

Topic Learning Links