✅ Step-by-Step Laravel Learning Plan (Free)
🔹 Step 1: Learn PHP Basics (if you're new to PHP)
Before Laravel, you must understand PHP fundamentals.
Free PHP Resources:
W3Schools PHP Tutorial
PHP Manual
Learn PHP - Codecademy (Free parts)
🔹 Step 2: Understand MVC and Composer
MVC = Model View Controller (Laravel is an MVC framework)
Composer = Dependency manager (used to install Laravel and packages)
Free Resources:
Laravel Basics on Laravel News
Composer Official Docs
🔹 Step 3: Start Learning Laravel
🧠 Topics to Learn:
Routing
Controllers
Views (Blade)
Models & Migrations
CRUD operations
Authentication
Eloquent ORM
Middleware
API Routes (if needed)
Top Free Laravel Learning Platforms:
1. 📘 Laravel Official Docs
o Most trusted and up-to-date.
2. 📺 Laravel From Scratch - YouTube (by Laracasts)
o Highly recommended beginner-friendly playlist (free).
3. 💻 Codecourse YouTube Channel
o Very practical Laravel projects.
4. 💻 Bitfumes Laravel Tutorials (YouTube)
o Great for beginners, especially in South Asia.
🔹 Step 4: Practice with Small Projects
Try building:
A TODO app
A blog system (with CRUD)
A simple eCommerce cart
A contact form with email
🔹 Step 5: Explore Laravel Ecosystem
Laravel Jetstream / Breeze – starter kits
Laravel Livewire – reactive components
Laravel API & Sanctum – for API development
💡 Bonus Tips:
Use Laravel Playground to experiment without installing Laravel.
Join the Laravel Discord or r/laravel to ask questions and get help.
Would you like me to create a personalized Laravel learning schedule for you based on how
much time you can study each day?
https://laracasts.com/series/laravel-8-from-scratch/episodes/45
Constraint Pattern Description
Numbers only [0-9]+ Only digits
Alphabets only [A-Za-z]+ Only letters
Slugs (letters, -) [A-Za-z\-]+ Letters and hyphens
Alphanumeric [A-Za-z0-9]+ Letters and numbers
Multiple Wildcards with Constraints
Route::get('/post/{slug}/{id}', function ($slug, $id) {
return "Post: $slug, ID: $id";
})->where([
'slug' => '[A-Za-z\-]+',
'id' => '[0-9]+'
]);
🔒 Applying Wildcard Constraints
To restrict the wildcard (e.g., make sure {id} is only numbers), use the where() method:
Route::get('/user/{id}', function ($id) {
return "User ID: " . $id;
})->where('id', '[0-9]+');
Let's take a look at an example of a basic controller. A controller may have any number of public
methods which will respond to incoming HTTP requests:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\View\View;
class UserController extends Controller
/**
* Show the profile for a given user.
*/
public function show(string $id): View
{
return view('user.profile', [
'user' => User::findOrFail($id)
]);
Once you have written a controller class and method, you may define a route to the controller
method like so:
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
When an incoming request matches the specified route URI, the show method on the App\
Http\Controllers\UserController class will be invoked and the route parameters will be passed to
the method
https://inertiajs.com/