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