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.
Create your very first simple Laravel project
Topic | Learning Links (:book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course) |
---|---|
Routing and Controllers: Basics | |
Callback Functions and Route::view() | ๐ Basic Routing ๐ View Routes |
Routing to a Single Controller Method | ๐ Basic Controllers with Routes |
Route Parameters | ๐ Route Parameters |
Route Naming | ๐ Names Routes |
Route Groups | ๐ Route Groups |
Blade Basics | |
Displaying Variables in Blade | ๐ Blade: Displaying Data |
Blade If-Else and Loop Structures | ๐ Blade: If-Statements ๐ Blade Loops |
Layout: @include, @extends, @section, @yield | ๐ Blade: Layout Using Template Inheritance |
Blade Components | ๐ Blade Components ๐ฌ Laravel Blade Components: Two Examples - Laravel Breeze/UI |
Auth Basics | |
Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap) | ๐ Laravel Breeze Official Documentation ๐ Laravel UI: Official Github Page |
Default Auth Model and Access its Fields from Anywhere | ๐ Retrieving the Authenticated User |
Check Auth in Controller / Blade | ๐ Determining If The Current User Is Authenticated ๐ Blade: Authentication Directives |
Auth Middleware | ๐ Protecting Routes |
Database Basics | |
Database Migrations | ๐ Database Migrations |
Basic Eloquent Model and MVC: Controller -> Model -> View | ๐ Eloquent: Getting Started |
Eloquent Relationships: belongsTo / hasMany / belongsToMany | ๐ Eloquent Relationships: One-to-Many ๐ Eloquent Relationships: BelongsTo ๐ Eloquent Relationships: Many-to-Many |
Eager Loading and N+1 Query Problem | ๐ Relationships: Eager Loading |
Full Simple CRUD | |
Route Resource and Resourceful Controllers | ๐ Laravel Resource Controllers ๐ Simple Laravel CRUD with Resource Controllers [digitalocean.com] |
Forms, Validation and Form Requests | ๐ Laravel Validation |
File Uploads and Storage Folder Basics | ๐ Filesystem: File Uploads |
Table Pagination | ๐ Database Pagination |
The goal of this level is to find the first job or freelance gig
Topic | Learning Links (:book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course) |
---|---|
Routing Advanced | |
Route Model Binding | ๐ Route Model Binding ๐ฌ Laravel Route Model Binding: All You Need To Know |
Route Redirect | ๐ Redirect Routes |
Middleware | |
Create Custom Middleware Class | ๐ Defining Middleware |
Database Advanced | |
Database Seeders and Factories | ๐ Database: Seeding ๐ Defining Model Factories |
Eloquent Query Scopes | ๐ Eloquent: Query Scopes |
Polymorphic relationships | ๐ Polymorphic Relationships |
Eloquent Accessors and Mutators | ๐ Accessors & Mutators |
Eloquent Collections | ๐ Eloquent Collections ๐ General Laravel Collections |
Soft Deletes | ๐ Soft Deleting |
Auth Advanced | |
Authorization: Roles/Permissions, Gates, Policies | ๐ Authorization ๐ฌ Laravel Roles and Permissions: All CORE Things You Need To Know |
Authorization: Extra Packages - Spatie Permission, Bouncer, etc | ๐ฌ Spatie Laravel Permission: Example Project Review ๐ Two Best Laravel Packages to Manage Roles/Permissions ๐ spatie/laravel-permission ๐ JosephSilber/bouncer |
Authentication: Email Verification | ๐ Email Verification |
File Uploads Advanced | |
Drivers and Disks, Example of Amazon S3 | ๐ File Storage ๐ฌ Laravel: How to Upload Files to Amazon S3 |
Extra Packages: Spatie Medialibrary, Intervention Image, etc | ๐ spatie/laravel-medialibrary ๐ intervention/image |
API Basics | |
API Routes and Controllers | ๐ API Resource Routes ๐ Default Route Files |
Working with API Clients: Postman or Alternatives | ๐ Postman API Client |
API Eloquent Resources | ๐ Eloquent: API Resources |
API Auth with Sanctum | ๐ Laravel Sanctum |
API Error Handling and Status Codes | ๐ฌ Laravel API 404 Error: Customize Exception Message ๐ HTTP Status Codes |
Debugging Errors | |
Log Files in Laravel | ๐ Logging |
Try-Catch and Laravel Exceptions | ๐ Error Handling ๐ฌ Exceptions in Laravel: Why/How to Use and Create Your Own |
Local Debugging Tools: Debugbar, Telescope, Ray | ๐ barryvdh/laravel-debugbar ๐ Laravel Telescope ๐ Spatie Ray (Premium Tool) ๐ฌ Debug Eloquent Queries from API: Laravel Telescope ๐ฌ Spatie Ray: Laravel Debugging with Pleasure |
Customizing Error Pages and Messages | ๐ Custom HTTP Error Pages ๐ฌ Laravel Error Pages: Change Text or Customize Layouts |
(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar | ๐ Bugsnag Laravel ๐ Flare Homepage ๐ Sentry Laravel ๐ Rollbar Laravel ๐ฌ Bug Tracking in Laravel: Bugsnag vs Flare [Demo/Review] |
Sending Email | |
Mailables and Mail Facade | ๐ Mail & Mailables |
Configure Drivers/Services: Mailgun, Mailtrap, etc | ๐ How to Send Email From Laravel, and Why We Need 3rd Party Providers For It ๐ Mail: Drivers Prerequisites |
Notifications System: Email, SMS, Slack, etc. | ๐ Notifications |
Automated Testing with PHPUnit | |
"Smoke" Tests to Check if Pages are Loading | ๐ Testing: Getting Started ๐ Laravel: PHPUnit Testing for Beginners |
Configure Testing Database and Test CRUD Operations | ๐ Database Testing |
Deployment and Version Control | |
Git Version Control | ๐ Git ๐ฌ Git in Laravel. Part 1 - Branches: Main, Develop and Feature |
Deployment on Live Servers | ๐ Deployment ๐ How to Deploy Laravel Projects to Live Server: The Ultimate Guide ๐ What Server is Needed to Deploy Laravel Projects ๐ฌ How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer |
Master all Laravel features with 3-5 years of practical experience
Topic | Learning Links (:book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course) |
---|