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) |
---|