---
# System prepended metadata

title: Laravel Learning Path

---

# Laravel Learning Path (Beginner Level)

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

Embark on a structured learning path to master Laravel, featuring an **organized** lineup of topics complete with accompanying resources.

Feel free to contribute by adding topics, resources, or any other.

---
**Icon Key**: 
- :book: Official Docs 
- :clapper: Video 
- :page_facing_up: Article 
- :capital_abcd: Course 
- :question: Test 

## Week 1: Begin Your Laravel Journey
Focus: Create your first Laravel project and explore the basics.



| Topic | Learning Links |
| ----- | -------------- |
| **Introduction to Routing and Controllers** | :question: [Test Your Laravel Routing Skills with 12 Tasks](https://www.youtube.com/watch?v=pENlD3izA3Q) |
| Explore Callback Functions and Route::view() |:book: [Basic Routing](https://laravel.com/docs/routing#basic-routing) <br>:book: [View Routes](https://laravel.com/docs/routing#view-routes) |


## Week 2: Dive Deeper into Laravel Features
Focus: Deepen your understanding of Laravel's Blade templating engine and basics of user authentication.

| Topic | Learning Links |
| ----- | -------------- |
| **Blade Templating Basics** | :question: [Test Your Laravel Blade Skills with 8 Tasks](https://www.youtube.com/watch?v=P8s7UHuUhbg)<br>:clapper: [9 Quick Tips about Laravel Blade](https://www.youtube.com/watch?v=-Glz1InN68o) |
| Utilizing Variables in Blade |:book: [Blade: Displaying Data](https://laravel.com/docs/blade#displaying-data) |


## Week 3: Understanding Laravel Authentication
Focus: Explore the fundamental concepts of Laravel authentication.

| Topic | Learning Links |
| ----- | -------------- |
| **Laravel Authentication Fundamentals** | :question: [Test Your Laravel Auth Skills with 7 Tasks](https://www.youtube.com/watch?v=v_3NmwtN_S0)<br>:clapper: [8 Tips & Tricks about Laravel Auth](https://www.youtube.com/watch?v=-dpp4CJS6Vk) |
| Introduction to Starter Kits: Breeze & Laravel UI |:book: [Laravel Breeze Official Documentation](https://laravel.com/docs/starter-kits#laravel-breeze) <br>:book: [Laravel UI: Official Github Page](https://github.com/laravel/ui) |


## Week 4: Mastering Laravel Database Operations
Focus: Grasp the essentials of database operations and Eloquent ORM in Laravel.

| Topic | Learning Links |
| ----- | -------------- |
| **Basics of Database Migrations** |:question: [Test Your Laravel Migrations Skills with 10 Tasks](https://www.youtube.com/watch?v=tPU1hNKI_lc)<br>:book: [Database Migrations](https://laravel.com/docs/migrations) |
| Understanding Basic Eloquent Model and MVC |:question: [Test Your Eloquent Basic Skills with 11 Tasks](https://www.youtube.com/watch?v=AmvLs9sRSH8)<br>:book: [Eloquent: Getting Started](https://laravel.com/docs/eloquent) |

## Week 4: Mastering Laravel Database Operations
Focus: Grasp the essentials of database operations and Eloquent ORM in Laravel.

| Topic | Learning Links |
| ----- | -------------- |
| **Basics of Database Migrations** |:question: [Test Your Laravel Migrations Skills with 10 Tasks](https://www.youtube.com/watch?v=tPU1hNKI_lc)<br>:book: [Database Migrations](https://laravel.com/docs/migrations) |
| Understanding Basic Eloquent Model and MVC |:question: [Test Your Eloquent Basic Skills with 11 Tasks](https://www.youtube.com/watch?v=AmvLs9sRSH8)<br>:book: [Eloquent: Getting Started](https://laravel.com/docs/eloquent) |

## Week 5: Dive into Eloquent ORM and MVC Architecture
Focus: Understand the basic Eloquent Model and Model-View-Controller (MVC) approach in Laravel.

| Topic | Learning Links |
| ----- | -------------- |
| **Basic Eloquent Model and MVC** |:question: [Test Your Eloquent Basic Skills: 11 Tasks to Complete](https://www.youtube.com/watch?v=AmvLs9sRSH8)<br>:book: [Eloquent: Getting Started](https://laravel.com/docs/eloquent) |

## Week 6: Explore Eloquent Relationships
Focus: Learn how to manage and utilize various Eloquent relationships for efficient data handling.

| Topic | Learning Links |
| ----- | -------------- |
| **Eloquent Relationships** |:question: [Test Your Eloquent Relationships Skills: 9 Tasks to Complete](https://www.youtube.com/watch?v=ohj0Mc09DyE)<br>:book: [Eloquent Relationships: One-to-One](https://laravel.com/docs/eloquent-relationships#one-to-one) <br>:book: [Eloquent Relationships: One-to-Many](https://laravel.com/docs/eloquent-relationships#one-to-many) <br>:book: [Eloquent Relationships: BelongsTo](https://laravel.com/docs/eloquent-relationships#one-to-many-inverse) <br>:book: [Eloquent Relation...

## Week 7: Mitigating N+1 Query Problems
Focus: Understand and solve potential issues related to eager loading and the N+1 query problem in Laravel.

| Topic | Learning Links |
| ----- | -------------- |
| **Eager Loading and N+1 Query Problem** |:book: [Relationships: Eager Loading](https://laravel.com/docs/eloquent-relationships#eager-loading) <br> :clapper: [Laravel N+1 Query Detector: Don't Forget Eager Loading](https://www.youtube.com/watch?v=MbN7BIcUnPA) |

## Week 8: Implement Full Simple CRUD Operations
Focus: Learn and practice implementing full simple CRUD (Create, Read, Update, Delete) operations in Laravel.

| Topic | Learning Links |
| ----- | -------------- |
| **Full Simple CRUD** ||
| Route Resource and Resourceful Controllers |:book: [Laravel Resource Controllers](https://laravel.com/docs/controllers#resource-controllers) <br>:page_facing_up: [Simple Laravel CRUD with Resource Controllers [digitalocean.com]](https://www.digitalocean.com/community/tutorials/simple-laravel-crud-with-resource-controllers) <br> :clapper: [Laravel Nested Resource Controllers: Two-Level Deep](https://www.youtube.com/watch?v=9R_9Xe3Fgnw) <br> :clapper: [More videos](videos/route-resource-resourceful-contro...
| Forms, Validation and Form Requests |:question: [Test Your Laravel Validation Skills: Complete 9 Tasks](https://www.youtube.com/watch?v=3ihjumeOMV4)<br>:book: [Laravel Validation](https://laravel.com/docs/validation) <br> :clapper: [New in Laravel 6.13: Format Validation Error Field Name](https://www.youtube.com/watch?v=KD1SqLO58eE) :clapper: [More videos](videos/forms-validation-requests.md) |
| File Uploads and Storage Folder Basics |:question: [Test Your Laravel File Upload Skills: Complete 7 Tasks](https://www.youtube.com/watch?v=_SrQRnOx3q8)<br>:book: [Filesystem: File Uploads](https://laravel.com/docs/filesystem#file-uploads) <br> :clapper: [Laravel: How to Upload File During User Registration](https://www.youtube.com/watch?v=xyQT2pnv_4E) <br> [More videos](videos/file-uploads-and-storage-folder-basics.md) |
| Table Pagination |:book: [Database Pagination](https://laravel.com/docs/pagination) |


---


## Beginner Demo-Project: Personal Blog


### The Task: Simple Personal Blog

You need to create a personal blog with just three pages:

- Homepage: List of articles
- Article page
- Some static text page like "About me"


Also, there should be a Login mechanism (but no Register) for the author to write articles:

- Manage (meaning, create/update/delete) categories
- Manage tags
- Manage articles 
- For Auth Starter Kit, use [Laravel Breeze](https://github.com/laravel/breeze) (Tailwind) or [Laravel UI](https://github.com/laravel/ui) (Bootstrap) - that starter kit will have some design, which is enough: the design is irrelevant for accomplishing the task


**DB Structure:**

- Article has title (required), full text (required) and image to upload (optional)
- Article may have only one category, but may have multiple tags


-----
**Routing and Controllers: Basics**	

- Callback Functions and Route::view()
- Routing to a Single Controller Method	
- Route Parameters
- Route Naming	
- Route Groups	


**Blade Basics**

- Displaying Variables in Blade
- Blade If-Else and Loop Structures
- Blade Loops
- Layout: @include, @extends, @section, @yield
- Blade Components


**Auth Basics**	

- Default Auth Model and Access its Fields from Anywhere
- Check Auth in Controller / Blade
- Auth Middleware


**Database Basics**	

- Database Migrations
- Basic Eloquent Model and MVC: Controller -> Model -> View
- Eloquent Relationships: belongsTo / hasMany / belongsToMany
- Eager Loading and N+1 Query Problem


**Full Simple CRUD**	

- Route Resource and Resourceful Controllers
- Forms, Validation and Form Requests
- File Uploads and Storage Folder Basics
- Table Pagination


----- 
