Free Online Course · Self-paced
Laravel Tutorial for Beginners (Step by Step)
Free, hands-on Laravel tutorial - install, routes, Eloquent ORM, Blade templates, authentication, Sanctum/Passport, validation, file storage, queues, mail, and production deployment. 40+ tested lessons.
- 63 parts
- ~538 min total
- Beginner to Intermediate
- Updated May 2026
Laravel is the most-used PHP framework on the planet, and once you internalize its conventions (service container, Eloquent ORM, Blade templates, middleware) it lets you build complete production web apps faster than almost anything else. This tutorial covers the practical Laravel - the parts you will actually use shipping real applications.
We start with installation and the request lifecycle, then move through routing and Blade templates, Eloquent ORM with migrations and relationships, the full authentication ecosystem (Breeze, Jetstream, Sanctum, Passport, policies), validation, storage, mail, and APIs (REST + GraphQL). Performance and tooling come next (Octane, Horizon, Debugbar, Pennant), then admin scaffolds (Voyager, Nova) and finally deployment (Docker, Sail, Forge). Every example is a complete, runnable snippet.
Click Start the course to begin with installation, or jump to the chapter you need - Eloquent ORM and Authentication and Authorization are the most-bookmarked.
What you'll learn
- Install Laravel and understand its directory layout and request lifecycle
- Build routes, controllers, and Blade templates
- Model data with Eloquent ORM, migrations, and relationships
- Implement authentication (Breeze, Jetstream, Sanctum, Passport) and authorization (Gates, Policies, Spatie permissions)
- Build REST and GraphQL APIs, send mail, handle file uploads, and schedule jobs
- Run Laravel in Docker, deploy to production with Forge, and tune with Octane
Prerequisites
- PHP 8.1+ and Composer installed locally
- Basic PHP, HTML/CSS, and SQL knowledge
- A database server (MySQL/MariaDB or PostgreSQL) - SQLite works for chapters 1-4
- Comfortable on the command line
Syllabus
10 chapters · 63 lessons · ~538 min of reading
-
1 Getting Started 7 lessons
- Part 1 Install Laravel 7 min read
- Part 2 Run your first Laravel project 7 min read
- Part 3 Upgrade Laravel to the latest version 6 min read
- Part 4 Remove /public from Laravel URLs 12 min read
- Part 5 Get the base URL in Laravel 5 min read
- Part 6 Change the Laravel timezone 5 min read
- Part 7 Set correct file permissions for Laravel 8 min read
-
3 Eloquent ORM and Database 16 lessons
- Part 13 Laravel Eloquent ORM tutorial 15 min read
- Part 14 Laravel migrations explained 10 min read
- Part 15 Add a new column to an existing table 9 min read
- Part 16 Make a column nullable in a migration 4 min read
- Part 17 Select specific columns with Eloquent 7 min read
- Part 18 Use whereIn() with Eloquent 5 min read
- Part 19 whereHas() for relationship constraints 16 min read
- Part 20 withCount() for related-row counts 7 min read
- Part 21 Get the last inserted ID 6 min read
- Part 22 Laravel soft delete 10 min read
- Part 23 Disable Eloquent timestamps 6 min read
- Part 24 Eager loading inside foreach loops 13 min read
- Part 25 Recursively find values in an array 6 min read
- Part 26 Sort by pivot table columns 10 min read
- Part 27 Sort by multiple columns 7 min read
- Part 28 Set up Laravel pagination Coming soon
-
4 Authentication and Authorization 11 lessons
- Part 28 Laravel authentication explained 13 min read
- Part 29 Laravel Breeze - lightweight auth scaffold 6 min read
- Part 30 Laravel Jetstream 8 min read
- Part 31 Laravel Sanctum - SPA and API tokens 8 min read
- Part 32 Laravel Passport - full OAuth2 server 20 min read
- Part 33 Customize auth routes in Laravel 8+ 9 min read
- Part 34 Reset password flow in Laravel 6 min read
- Part 35 Hash and verify passwords 7 min read
- Part 36 Gates and policies for authorization 8 min read
- Part 37 Role-based permissions with spatie/permission 8 min read
- Part 38 Check user online/offline status 8 min read
-
5 Validation, Storage and Mail 7 lessons
- Part 39 Laravel validation tutorial 15 min read
- Part 40 Use the "in" validation rule 6 min read
- Part 41 Laravel storage disks 8 min read
- Part 42 Delete a file with Laravel 6 min read
- Part 43 Send emails in Laravel 13 min read
- Part 44 Laravel gallery management 11 min read
- Part 45 Generate PDFs in Laravel 4 min read
-
7 Performance, Logs and Tooling 6 lessons
- Part 51 Clear the Laravel cache 5 min read
- Part 52 Clean and rotate Laravel logs 6 min read
- Part 53 Debug with Laravel Debugbar 7 min read
- Part 54 Laravel Octane for high performance 11 min read
- Part 55 Manage queues with Laravel Horizon 6 min read
- Part 56 Feature flags with Laravel Pennant 11 min read
-
8 Background Jobs and Scheduling 1 lesson
-
9 Admin Tooling and Boilerplates 3 lessons

