├── readme.md
├── roadmap.sql
└── videos
├── all-eloquent-features.md
├── api-auth-with-sanctum.md
├── auth-starter-kits.md
├── authorization-roles-permissions-gates-policies.md
├── database-migrations.md
├── database-seeders-and-factories.md
├── exceptions.md
├── file-upload-extra-packages.md
├── file-uploads-and-storage-folder-basics.md
├── forms-validation-requests.md
├── git-version-control.md
├── route-groups.md
├── route-model-binding.md
├── route-resource-resourceful-controllers.md
└── routing-advanced.md
/readme.md:
--------------------------------------------------------------------------------
1 | # IMPORTANT: March 2022
2 |
3 | It's horrible to see what is happening now in Ukraine, as Russian army is [bombarding houses, hospitals and kindergartens](https://twitter.com/DavidCornDC/status/1501620037785997316).
4 |
5 | Please [check out supportukrainenow.org](https://supportukrainenow.org/) for the ways how you can help people there. Spread the word.
6 |
7 | And if you are from Russia and you are against this war, please express your protest in some way. I know you can get punished for this, but you are one of the hopes of those innocent people.
8 |
9 | ---
10 |
11 | # Laravel Learning Path
12 |
13 | This repository contains the **ordered** list of Laravel topics to learn, step-by-step, with related links.
14 |
15 | If you want to add a topic, link, or any other suggestion, please open Issues or Pull Requests.
16 |
17 | **Notice**: This content was filled into an adminpanel generated with our [QuickAdminPanel](https://quickadminpanel.com?utm_source=github&utm_campaign=roadmap) - here's a [video demo of that process on Youtube](https://www.youtube.com/watch?v=i2ElUDUDRms). By purchasing QuickAdminPanel, you support my free initiatives, like this Roadmap.
18 |
19 | ---
20 |
21 | ## Beginner Level
22 | Create your very first simple Laravel project
23 |
24 | __Link icons: :book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course :question: Test__
25 |
26 | | Topic | Learning Links |
27 | | ----- | ----- |
28 | | **Routing and Controllers: Basics** | :question: [Let's Test Your Laravel Routing Skills: Complete 12 Tasks](https://www.youtube.com/watch?v=pENlD3izA3Q) |
29 | | Callback Functions and Route::view() |:book: [Basic Routing](https://laravel.com/docs/routing#basic-routing)
:book: [View Routes](https://laravel.com/docs/routing#view-routes)
|
30 | | Routing to a Single Controller Method |:book: [Basic Controllers with Routes](https://laravel.com/docs/controllers#basic-controllers)
|
31 | | Route Parameters |:book: [Route Parameters](https://laravel.com/docs/routing#route-parameters)
|
32 | | Route Naming |:book: [Names Routes](https://laravel.com/docs/routing#named-routes)
:clapper: [Laravel: Why You Need Route Names?](https://www.youtube.com/watch?v=7lalb6HtR1c)
|
33 | | Route Groups |:book: [Route Groups](https://laravel.com/docs/routing#route-groups)
:clapper: [Laravel Route Grouping: Simple to Very Complex](https://www.youtube.com/watch?v=I6kyfSmPhn8)
:clapper: [More videos](videos/route-groups.md) |
34 | | **Blade Basics** | :question: [Let's Test Your Laravel Blade Skills: Complete 8 Tasks](https://www.youtube.com/watch?v=P8s7UHuUhbg)
:clapper: [9 Quick Tips about Laravel Blade](https://www.youtube.com/watch?v=-Glz1InN68o)
|
35 | | Displaying Variables in Blade |:book: [Blade: Displaying Data](https://laravel.com/docs/blade#displaying-data)
|
36 | | Blade If-Else and Loop Structures |:book: [Blade: If-Statements](https://laravel.com/docs/blade#if-statements)
:book: [Blade Loops](https://laravel.com/docs/blade#loops)
|
37 | | Layout: @include, @extends, @section, @yield |:book: [Blade: Layout Using Template Inheritance](https://laravel.com/docs/blade#layouts-using-template-inheritance)
|
38 | | Blade Components |:book: [Blade Components](https://laravel.com/docs/blade#components)
:clapper: [Laravel Blade Components: Two Examples - Laravel Breeze/UI](https://www.youtube.com/watch?v=HybWBINeXMw)
|
39 | | **Auth Basics** | :question: [Test Your Laravel Auth Skills: Complete 7 Tasks](https://www.youtube.com/watch?v=v_3NmwtN_S0)
:clapper: [8 Tips & Tricks about Laravel Auth](https://www.youtube.com/watch?v=-dpp4CJS6Vk)
|
40 | | Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap) |:book: [Laravel Breeze Official Documentation](https://laravel.com/docs/starter-kits#laravel-breeze)
:book: [Laravel UI: Official Github Page](https://github.com/laravel/ui)
:clapper: [Laravel 8 Auth: 5 "Latest" Things You Need to Know](https://www.youtube.com/watch?v=L1FVdHdEm_8)
[More videos](videos/auth-starter-kits.md)
|
41 | | Default Auth Model and Access its Fields from Anywhere |:book: [Retrieving the Authenticated User](https://laravel.com/docs/authentication#retrieving-the-authenticated-user)
|
42 | | Check Auth in Controller / Blade |:book: [Determining If The Current User Is Authenticated](https://laravel.com/docs/authentication#determining-if-the-current-user-is-authenticated)
:book: [Blade: Authentication Directives](https://laravel.com/docs/blade#authentication-directives)
|
43 | | Auth Middleware |:book: [Protecting Routes](https://laravel.com/docs/authentication#protecting-routes)
|
44 | | **Database Basics** ||
45 | | Database Migrations |:question: [Test Your Laravel Migrations Skills: Complete 10 Tasks](https://www.youtube.com/watch?v=tPU1hNKI_lc)
:book: [Database Migrations](https://laravel.com/docs/migrations)
:clapper: [Laravel Migrations: Table Created but Foreign Key Failed?](https://www.youtube.com/watch?v=DWzUBpsEEHY)
[More videos](videos/database-migrations.md) |
46 | | Basic Eloquent Model and MVC: Controller -> Model -> View |:question: [Test Your Eloquent Basic Skills: 11 Tasks to Complete](https://www.youtube.com/watch?v=AmvLs9sRSH8)
:book: [Eloquent: Getting Started](https://laravel.com/docs/eloquent)
|
47 | | Eloquent Relationships: belongsTo / hasMany / belongsToMany |:question: [Test Your Eloquent Relationships Skills: 9 Tasks to Complete](https://www.youtube.com/watch?v=ohj0Mc09DyE)
:book: [Eloquent Relationships: One-to-One](https://laravel.com/docs/eloquent-relationships#one-to-one)
:book: [Eloquent Relationships: One-to-Many](https://laravel.com/docs/eloquent-relationships#one-to-many)
:book: [Eloquent Relationships: BelongsTo](https://laravel.com/docs/eloquent-relationships#one-to-many-inverse)
:book: [Eloquent Relationships: Many-to-Many](https://laravel.com/docs/eloquent-relationships#many-to-many)
:clapper: [How to Safely Change DB Relations in Live Laravel Project?](https://www.youtube.com/watch?v=nRmoywPJRdM) |
48 | | Eager Loading and N+1 Query Problem |:book: [Relationships: Eager Loading](https://laravel.com/docs/eloquent-relationships#eager-loading)
:clapper: [Laravel N+1 Query Detector: Don't Forget Eager Loading](https://www.youtube.com/watch?v=MbN7BIcUnPA)
|
49 | | **Full Simple CRUD** ||
50 | | Route Resource and Resourceful Controllers |:book: [Laravel Resource Controllers](https://laravel.com/docs/controllers#resource-controllers)
:page_facing_up: [Simple Laravel CRUD with Resource Controllers [digitalocean.com]](https://www.digitalocean.com/community/tutorials/simple-laravel-crud-with-resource-controllers)
:clapper: [Laravel Nested Resource Controllers: Two-Level Deep](https://www.youtube.com/watch?v=9R_9Xe3Fgnw)
:clapper: [More videos](videos/route-resource-resourceful-controllers.md)
|
51 | | Forms, Validation and Form Requests |:question: [Test Your Laravel Validation Skills: Complete 9 Tasks](https://www.youtube.com/watch?v=3ihjumeOMV4)
:book: [Laravel Validation](https://laravel.com/docs/validation)
: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) |
52 | | File Uploads and Storage Folder Basics |:question: [Test Your Laravel File Upload Skills: Complete 7 Tasks](https://www.youtube.com/watch?v=_SrQRnOx3q8)
:book: [Filesystem: File Uploads](https://laravel.com/docs/filesystem#file-uploads)
:clapper: [Laravel: How to Upload File During User Registration](https://www.youtube.com/watch?v=xyQT2pnv_4E)
[More videos](videos/file-uploads-and-storage-folder-basics.md)
|
53 | | Table Pagination |:book: [Database Pagination](https://laravel.com/docs/pagination)
|
54 |
55 |
56 | ### Beginner Demo-Project: Personal Blog
57 |
58 | To achieve this Beginner level, you would need to practice by creating something like [this personal blog project](https://github.com/LaravelDaily/Laravel-Roadmap-Beginner-Challenge).
59 |
60 | Inside of the repository above, you will find all the details of the task, with a few example solutions.
61 |
62 | -----
63 |
64 |
65 | ## Advanced Beginner Level
66 | The goal of this level is to find the first job or freelance gig
67 |
68 | __Link icons: :book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course__
69 |
70 | | Topic | Learning Links |
71 | | ----- | ----- |
72 | | **Routing Advanced** | :clapper: [Laravel: 8 Tips for Advanced Routing](https://www.youtube.com/watch?v=_BIhuX8owTo)
:clapper: [More videos](videos/routing-advanced.md)
|
73 | | Route Model Binding |:book: [Route Model Binding](https://laravel.com/docs/routing#route-model-binding)
:clapper: [Laravel Route Model Binding: All You Need To Know](https://www.youtube.com/watch?v=6dEfxGLgevM)
:clapper: [More videos](videos/route-model-binding.md)|
74 | | Route Redirect |:book: [Redirect Routes](https://laravel.com/docs/routing#redirect-routes)
|
75 | | **Middleware** ||
76 | | Create Custom Middleware Class |:book: [Defining Middleware](https://laravel.com/docs/middleware#defining-middleware)
|
77 | | **Database Advanced** ||
78 | | Database Seeders and Factories |:book: [Database: Seeding](https://laravel.com/docs/seeding)
:book: [Defining Model Factories](https://laravel.com/docs/eloquent-factories#defining-model-factories)
:clapper: [Laravel Factories: Generate and Re-use Fake Records](https://www.youtube.com/watch?v=MHBDUJ51Pqs)
:clapper: [More videos](videos/database-seeders-and-factories.md)|
79 | | Eloquent Query Scopes |:book: [Eloquent: Query Scopes](https://laravel.com/docs/eloquent#query-scopes)
:clapper: [Same Eloquent Where Condition? Refactor into Local Scopes](https://www.youtube.com/watch?v=90xGUIuZsHE)
|
80 | | Polymorphic relationships |:book: [Polymorphic Relationships](https://laravel.com/docs/eloquent-relationships#polymorphic-relationships)
:clapper: [Laravel.io Portal: Polymorphic Relations Example](https://www.youtube.com/watch?v=EjJaNGW7vAg)
|
81 | | Eloquent Accessors and Mutators |:book: [Accessors & Mutators](https://laravel.com/docs/eloquent-mutators#accessors-and-mutators)
|
82 | | Eloquent Collections |:book: [Eloquent Collections](https://laravel.com/docs/eloquent-collections)
:book: [General Laravel Collections](https://laravel.com/docs/collections)
|
83 | | Soft Deletes |:book: [Soft Deleting](https://laravel.com/docs/eloquent#soft-deleting)
|
84 | | **Auth Advanced** ||
85 | | Authorization: Roles/Permissions, Gates, Policies |:book: [Authorization](https://laravel.com/docs/authorization)
:clapper: [Laravel Roles and Permissions: All CORE Things You Need To Know](https://www.youtube.com/watch?v=kZOgH3-0Bko)
[More videos](videos/authorization-roles-permissions-gates-policies.md)|
86 | | Authorization: Extra Packages - Spatie Permission, Bouncer, etc |:clapper: [Spatie Laravel Permission: Example Project Review](https://www.youtube.com/watch?v=NgToi0uiMNQ)
:page_facing_up: [Two Best Laravel Packages to Manage Roles/Permissions](https://laravel-news.com/two-best-roles-permissions-packages)
:book: [spatie/laravel-permission](https://github.com/spatie/laravel-permission)
:book: [JosephSilber/bouncer](https://github.com/JosephSilber/bouncer)
|
87 | | Authentication: Email Verification |:book: [Email Verification](https://laravel.com/docs/verification)
:clapper: [How to Translate/Customize Laravel Auth Default Emails](https://www.youtube.com/watch?v=c01k5Zo_CuI) |
88 | | **File Uploads Advanced** |:capital_abcd: [File Uploads in Laravel](https://laraveldaily.com/course/laravel-file-uploads?utm_source=github&utm_campaign=roadmap)
|
89 | | Drivers and Disks, Example of Amazon S3 |:book: [File Storage](https://laravel.com/docs/filesystem)
:clapper: [Laravel: How to Upload Files to Amazon S3](https://www.youtube.com/watch?v=xZQM9q_QxMA)
|
90 | | Extra Packages: Spatie Medialibrary, Intervention Image, etc |:book: [spatie/laravel-medialibrary](https://github.com/spatie/laravel-medialibrary)
:book: [intervention/image](https://github.com/Intervention/image)
:clapper: [Spatie Media Library Pro: Laravel File Uploads with Great UX [REVIEW]](https://www.youtube.com/watch?v=oqW6vlJgXYE)
:clapper: [More videos](videos/file-upload-extra-packages.md)
|
91 | | **API Basics** |:capital_abcd: [How to Create Laravel API](https://laraveldaily.com/course/laravel-api?utm_source=github&utm_campaign=roadmap)
:clapper: [Create Model with API Controller - in one Artisan Command](https://www.youtube.com/watch?v=DZw2wKzfRVU)
[Laravel API: Be Careful When Doing Changes](https://www.youtube.com/watch?v=yXnIW4DkuHQ)
|
92 | | API Routes and Controllers |:book: [API Resource Routes](https://laravel.com/docs/controllers#api-resource-routes)
:book: [Default Route Files](https://laravel.com/docs/routing#the-default-route-files)
:clapper: [Junior Code Review: Simple Laravel API - in 5 Different Ways](https://www.youtube.com/watch?v=MxQJlFUYO30)
|
93 | | Working with API Clients: Postman or Alternatives |:book: [Postman API Client](https://www.postman.com/product/api-client/)
|
94 | | API Eloquent Resources |:book: [Eloquent: API Resources](https://laravel.com/docs/eloquent-resources)
:clapper: [Laravel API Result: Add Fields with Map or Appends](https://www.youtube.com/watch?v=FNU3gYgiEgQ)
|
95 | | API Auth with Sanctum |:book: [Laravel Sanctum](https://laravel.com/docs/sanctum)
:clapper: [Laravel API Auth with Sanctum and API Tokens](https://www.youtube.com/watch?v=gyWLxpYWxFQ)
:clapper: [More videos](videos/api-auth-with-sanctum.md)
|
96 | | API Error Handling and Status Codes |:clapper: [Laravel API 404 Error: Customize Exception Message](https://www.youtube.com/watch?v=SlBJrLnyoMk)
:page_facing_up: [HTTP Status Codes](https://httpstatuses.com/)
|
97 | | **Debugging Errors** ||
98 | | Log Files in Laravel |:book: [Logging](https://laravel.com/docs/logging)
|
99 | | Try-Catch and Laravel Exceptions |:book: [Error Handling](https://laravel.com/docs/errors)
:clapper: [Exceptions in Laravel: Why/How to Use and Create Your Own](https://www.youtube.com/watch?v=RTTXZVIL6tw)
|
100 | | Local Debugging Tools: Debugbar, Telescope, Ray |:book: [barryvdh/laravel-debugbar](https://github.com/barryvdh/laravel-debugbar)
:book: [Laravel Telescope](https://laravel.com/docs/telescope)
:book: [Spatie Ray (Premium Tool)](https://myray.app/)
:clapper: [Debug Eloquent Queries from API: Laravel Telescope](https://www.youtube.com/watch?v=SR3RzIfeozI)
:clapper: [Spatie Ray: Laravel Debugging with Pleasure](https://www.youtube.com/watch?v=n4pMxyAXeqY)
|
101 | | Customizing Error Pages and Messages |:book: [Custom HTTP Error Pages](https://laravel.com/docs/errors#custom-http-error-pages)
:clapper: [Laravel Error Pages: Change Text or Customize Layouts](https://www.youtube.com/watch?v=iMAFUi6Z57k)
:clapper: [New in Laravel 8.26: Override 404 Page with Route Missing](https://www.youtube.com/watch?v=nvDCQDkcjN0)
|
102 | | (optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar |:book: [Bugsnag Laravel](https://docs.bugsnag.com/platforms/php/laravel/)
:book: [Flare Homepage](https://flareapp.io/)
:book: [Sentry Laravel](https://docs.sentry.io/platforms/php/guides/laravel/)
:book: [Rollbar Laravel](https://docs.rollbar.com/docs/laravel)
:clapper: [Bug Tracking in Laravel: Bugsnag vs Flare [Demo/Review]](https://www.youtube.com/watch?v=88UqUXhWwGA)
|
103 | | **Sending Email** | :clapper: [Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)](https://www.youtube.com/watch?v=ZWzH6SOzjhI) |
104 | | Mailables and Mail Facade |:book: [Mail & Mailables](https://laravel.com/docs/mail)
|
105 | | Configure Drivers/Services: Mailgun, Mailtrap, etc |:page_facing_up: [How to Send Email From Laravel, and Why We Need 3rd Party Providers For It](https://laraveldaily.com/how-to-send-email-from-laravel-and-why-we-need-3rd-party-providers-for-it/)
:book: [Mail: Drivers Prerequisites](https://laravel.com/docs/mail#driver-prerequisites)
|
106 | | Notifications System: Email, SMS, Slack, etc. |:book: [Notifications](https://laravel.com/docs/notifications)
:clapper: [Laravel Notifications: "Database" Driver - Demo Project](https://www.youtube.com/watch?v=5DREuAvFnps)|
107 | | **Automated Testing with PHPUnit** | :clapper: [PHPUnit in Laravel: Simple Example of Why/How to Test](https://www.youtube.com/watch?v=DRhhfy2sG1E)
|
108 | | "Smoke" Tests to Check if Pages are Loading |:book: [Testing: Getting Started](https://laravel.com/docs/testing)
:capital_abcd: [Testing Laravel: Course by Spatie](https://spatie.be/products/testing-laravel)
:capital_abcd: [My Course: Laravel Testing For Beginners: PHPUnit, Pest, TDD](https://laraveldaily.com/course/laravel-testing?utm_source=github&utm_campaign=roadmap)
:clapper: [Laravel TDD in "Live" Mode: Checkout Code Review](https://www.youtube.com/watch?v=5XywKLjCD3g) |
109 | | Configure Testing Database and Test CRUD Operations |:book: [Database Testing](https://laravel.com/docs/database-testing)
|
110 | | **Deployment and Version Control** ||
111 | | Git Version Control |:book: [Git](https://git-scm.com/)
:clapper: [Git in Laravel. Part 1 - Branches: Main, Develop and Feature](https://www.youtube.com/watch?v=AmScEC-_72I)
:clapper: [More videos](videos/git-version-control.md)|
112 | | Deployment on Live Servers |:book: [Deployment](https://laravel.com/docs/deployment)
:page_facing_up: [How to Deploy Laravel Projects to Live Server: The Ultimate Guide](https://laraveldaily.com/how-to-deploy-laravel-projects-to-live-server-the-ultimate-guide/)
:page_facing_up: [What Server is Needed to Deploy Laravel Projects](https://laraveldaily.com/what-server-is-needed-to-deploy-laravel-projects/)
:clapper: [How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer](https://www.youtube.com/watch?v=8DVuVftFZcQ)
|
113 |
114 |
115 | ### Advanced Beginner Demo-Project: Simple CRM
116 |
117 | To achieve this Advanced Beginner level, you would need to practice by creating something like [this simple CRM project](https://github.com/LaravelDaily/Laravel-Roadmap-Advanced-Beginner-Challenge).
118 |
119 | Inside of the repository above, you will find all the details of the task, with an example solution.
120 |
121 | -----
122 |
123 | ## Mid Level
124 | Master all Laravel features with 3-5 years of practical experience
125 |
126 | __Link icons: :book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course__
127 |
128 | | Topic | Learning Links |
129 | | ----- | ----- |
130 | | **Routing Extra Features** ||
131 | | Route Caching |:book: [Route Caching](https://laravel.com/docs/routing#route-caching)
|
132 | | Rate Limiting |:book: [Rate Limiting](https://laravel.com/docs/routing#rate-limiting)
:clapper: [Laravel: Create Public API with Cache and Rate Limits](https://www.youtube.com/watch?v=vrLcCxWlxOk)
|
133 | | Invokable controllers |:book: [Single Action Controllers](https://laravel.com/docs/controllers#single-action-controllers)
|
134 | | **Database/Eloquent Extra Features** ||
135 | | Model Observers |:book: [Eloquent Observers](https://laravel.com/docs/eloquent#observers)
:clapper: [Laravel Model: Check if Any Field Was Changed](https://www.youtube.com/watch?v=_xluet13xxE)
:clapper: [Eloquent Observers or Events Listeners? Which is Better?](https://www.youtube.com/watch?v=DvoaU6cQQHM)
|
136 | | Raw Database Queries |:book: [Query Builder: Raw Expressions](https://laravel.com/docs/queries#raw-expressions)
|
137 | | All Eloquent Features |:book: [All About Eloquent](https://laravel.com/docs/eloquent)
:capital_abcd: [Eloquent: Expert Level](https://laraveldaily.teachable.com/p/laravel-eloquent-expert-level?utm_source=github&utm_campaign=roadmap)
:page_facing_up: [20 Laravel Eloquent Tips and Tricks](https://laravel-news.com/eloquent-tips-tricks)
:clapper: [Laravel Collections: 5 Methods with Real Examples](https://www.youtube.com/watch?v=isAz2GduuA0)
[More videos](videos/all-eloquent-features.md)
|
138 | | **Various Extra Laravel Features** ||
139 | | Custom Blade Directives |:book: [Extending Blade](https://laravel.com/docs/blade#extending-blade)
|
140 | | Events and Listeners |:book: [Events and Listeners](https://laravel.com/docs/events)
:clapper: [Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)](https://www.youtube.com/watch?v=ZWzH6SOzjhI)
:clapper: [Laravel: Why Observers and Event Listeners are "Risky"](https://www.youtube.com/watch?v=A3bmLo77e5M)
|
141 | | Laravel HTTP Client and Guzzle |:book: [HTTP Client](https://laravel.com/docs/http-client)
:clapper: [Laravel and External APIs: Get Data with HTTP Client](https://www.youtube.com/watch?v=oEDDZsmMLc0)
|
142 | | Login with X: Laravel Socialite |:book: [Laravel Socialite](https://laravel.com/docs/socialite)
|
143 | | Creating Artisan Commands |:book: [Writing Artisan Commands](https://laravel.com/docs/artisan#writing-commands)
:clapper: [How to Create Artisan Commands in Laravel](https://www.youtube.com/watch?v=-r3WnYy7g48)
|
144 | | Task Scheduling |:book: [Task Scheduling](https://laravel.com/docs/scheduling)
:clapper: [Laravel Task Scheduling: Run Artisan Command Hourly](https://www.youtube.com/watch?v=r-KrsQ0dN80)
|
145 | | Caching |:book: [Cache](https://laravel.com/docs/cache)
:clapper: [Cache Eloquent Query Results to Load Pages Instantly](https://www.youtube.com/watch?v=JhKngeE0XJA)
|
146 | | Real-time: Broadcasting, Echo and Pusher |:book: [Broadcasting](https://laravel.com/docs/broadcasting)
|
147 | | **Jobs and Queues** |:capital_abcd: [Queues in Laravel](https://laraveldaily.com/course/laravel-queues?utm_source=github&utm_campaign=roadmap)
|
148 | | Queueable Classes and Jobs |:book: [Creating Jobs](https://laravel.com/docs/queues#creating-jobs)
:book: [Queueing Notifications](https://laravel.com/docs/notifications#queueing-notifications)
:book: [Queued Event Listeners](https://laravel.com/docs/events#queued-event-listeners)
:book: [Queueing Mail](https://laravel.com/docs/mail#queueing-mail)
:clapper: [Laravel Queues 101: Example with Sending Emails](https://www.youtube.com/watch?v=rVx8xKisbr8)
|
149 | | Job Dispatching, Batching and Chaining |:book: [Dispatching Jobs](https://laravel.com/docs/queues#dispatching-jobs)
|
150 | | Processing Failed Jobs |:book: [Dealing with Failed Jobs](https://laravel.com/docs/queues#dealing-with-failed-jobs)
|
151 | | Configuring Queues: Drivers, Redis, Supervisor |:book: [Running the Queue Worker](https://laravel.com/docs/queues#running-the-queue-worker)
:book: [Configuring Supervisor](https://laravel.com/docs/queues#supervisor-configuration)
|
152 | | Laravel Horizon (optional, if you use Redis) |:book: [Laravel Horizon](https://laravel.com/docs/horizon)
|
153 | | **API Advanced** ||
154 | | Upload Files via API |:page_facing_up: [Laravel API: How to Upload File from Vue.js](https://blog.quickadminpanel.com/laravel-api-how-to-upload-file-from-vue-js/)
|
155 | | Generate API Documentation |:page_facing_up: [Laravel API Documentation with OpenAPI/Swagger](https://blog.quickadminpanel.com/laravel-api-documentation-with-openapiswagger/)
:clapper: [Scribe: New Package for Laravel API Documentation](https://www.youtube.com/watch?v=PjwGI8c2IfA)
|
156 | | API Versioning |:page_facing_up: [Versioning your REST API with Laravel](https://codimth.com/blog/web/laravel/versioning-your-rest-api-laravel)
:clapper: [Versioning your API: from V1 to V2 and Beyond [video from my course]](https://laraveldaily.com/lesson/laravel-api/versioning-v1-v2?utm_source=github&utm_campaign=roadmap)
|
157 | | API with OAuth and Laravel Passport |:book: [Laravel Passport](https://laravel.com/docs/passport)
:clapper: [Laravel API Auth Demo: Passport, oAuth and Sanctum](https://www.youtube.com/watch?v=8myQdPL8I1s)|
158 | | Only-API Projects with Front-end like Vue.js / React.js |:capital_abcd: [Vue.js 3 + Laravel 9 SPA: CRUD with Auth](https://laraveldaily.com/course/vue-laravel-spa?utm_source=github&utm_campaign=roadmap)
:capital_abcd: [React.js + Laravel: SPA CRUD with Auth](https://laraveldaily.com/course/react-laravel-spa?utm_source=github&utm_campaign=roadmap)
|
159 | | Only-API Projects with Mobile Apps |:capital_abcd: [Flutter Mobile App with Laravel API](https://laraveldaily.com/course/flutter-laravel?utm_source=github&utm_campaign=roadmap)
:page_facing_up: [Using Sanctum to authenticate a mobile app](https://laravel-news.com/using-sanctum-to-authenticate-a-mobile-app)
|
160 | | **(optional) Starter Kits: Laravel Jetstream and Fortify** ||
161 | | Laravel Jetstream (requires Livewire/Inertia knowledge) |:book: [Laravel Jetstream](https://jetstream.laravel.com)
:capital_abcd: [Laravel Jetstream+Livewire: Real Mini-Project](https://laraveldaily.teachable.com/p/laravel-jetstream-livewire-project?utm_source=github&utm_campaign=roadmap)
:clapper: [Laravel Jetstream: How it Works and Example How to Customize](https://www.youtube.com/watch?v=d8YgWApHMfA)
|
162 | | Laravel Fortify |:book: [Laravel Fortify](https://laravel.com/docs/fortify)
:clapper: [Laravel Fortify: Four Auth Things to Customize](https://www.youtube.com/watch?v=Vr4LJU3kw1g)
|
163 | | **Payments** ||
164 | | Laravel Cashier with Stripe/Paddle |:book: [Laravel Cashier (Stripe)](https://laravel.com/docs/billing)
:book: [Laravel Cashier (Paddle)](https://laravel.com/docs/cashier-paddle)
|
165 | | Custom Payment Providers: PayPal, Mollie, etc |:page_facing_up: [Subscription billing with Laravel Cashier for Mollie](https://github.com/laravel/cashier-mollie)
:page_facing_up: [How To Integrate Paypal Payment Gateway In Laravel](https://websolutionstuff.com/post/how-to-integrate-paypal-payment-gateway-in-laravel)
|
166 | | **Automated Testing Advanced** ||
167 | | TDD: Test-Driven Development |:capital_abcd: [Build A Laravel App With TDD](https://laracasts.com/series/build-a-laravel-app-with-tdd)
:capital_abcd: [TDD With Laravel](https://tddwithlaravel.com/)
|
168 | | Mocking |:book: [Mocking](https://laravel.com/docs/mocking)
|
169 | | (optional) Laravel Dusk |:book: [Laravel Dusk](https://laravel.com/docs/dusk)
|
170 | | **Full-Text Search** ||
171 | | Laravel Scout |:book: [Laravel Scout](https://laravel.com/docs/scout)
|
172 | | Drivers: ElasticSearch, Algolia or MeiliSearch |:page_facing_up: [ElasticSearch Driver for Laravel Scout](https://laravel-news.com/explorer)
:book: [Algolia: Scout Extended](https://www.algolia.com/doc/framework-integration/laravel/getting-started/introduction-to-scout-extended/?client=php)
:page_facing_up: [Full-Text Search with MeiliSearch and Laravel Scout](https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/)
|
173 | | **Laravel Packages** ||
174 | | Contributing to Packages, making Pull Requests |:clapper: [How to Contribute to Laravel Docs (or any open-source repository)](https://www.youtube.com/watch?v=vEcT6JIFji0)
|
175 | | Create Laravel Packages |:book: [Package Development](https://laravel.com/docs/packages)
:capital_abcd: [Laravel Package Development](https://laravelpackage.com/)
|
176 |
177 |
178 | ## Senior Level
179 | Responsibility for architecture decisions on large projects
180 |
181 | __Link icons: :book: Official Docs :clapper: Video :page_facing_up: Article :capital_abcd: Course__
182 |
183 | | Topic | Learning Links |
184 | | ----- | ----- |
185 | | **PHP/Laravel Design Patterns** |:clapper: [Laravel Design Patterns - Bobby Bouwmann - Laracon EU 2018 Amsterdam](https://www.youtube.com/watch?v=qpo5KG0vIyE)
:capital_abcd: [Laracasts: Design Patterns in PHP](https://laracasts.com/series/design-patterns-in-php)
:clapper: [Colin Decarlo - Design Patterns with Laravel [Laracon 2018]](https://www.youtube.com/watch?v=e4ugSgGaCQ0)
:clapper: [Matt Stauffer - Patterns That Pay Off [Laracon 2018]](https://www.youtube.com/watch?v=enTb2E4vEos)
:capital_abcd: [Design Patterns in PHP](https://refactoring.guru/design-patterns/php)
:page_facing_up: [Design Patterns for Humans](https://github.com/kamranahmedse/design-patterns-for-humans)
|
186 | | Creational Design Patterns |:page_facing_up: [Design Patterns: Creational](https://refactoring.guru/design-patterns/creational-patterns)
|
187 | | Structural Design Patterns |:page_facing_up: [Design Patterns: Structural](https://refactoring.guru/design-patterns/structural-patterns)
|
188 | | Behavioral Design Patterns |:page_facing_up: [Design Patterns: Behavioral](https://refactoring.guru/design-patterns/behavioral-patterns)
|
189 | | **Well-written Code** ||
190 | | SOLID Code |:capital_abcd: [SOLID Code in Laravel](https://laraveldaily.com/course/solid-laravel?utm_source=github&utm_campaign=roadmap)
:clapper: [Becoming a better developer by using the SOLID design principles by Katerina Trajchevska](https://www.youtube.com/watch?v=rtmFCcjEgEw)
:page_facing_up: [Writing Maintainable Code: SOLID Principles Explained in PHP (Laravel)](https://geekflare.com/php-solid-principles/)
:capital_abcd: [Laracasts: SOLID Principles in PHP](https://laracasts.com/series/solid-principles-in-php)
:clapper: [PHP Solid Principles [Playlist]](https://www.youtube.com/watch?v=ARxZV8OZ8Cg&list=PLNuh5_K9dfQ3jMU-2C2jYRGe2iXJkpCZj)
|
191 | | Scalable Code |:capital_abcd: [Scaling Laravel](https://courses.serversforhackers.com/scaling-laravel)
:clapper: [Enterprise Laravel by Matt Stauffer](https://enterpriselaravel.com/)
:page_facing_up: [What the hell is scalable code anyway?](https://blog.sarasarya.com/what-the-hell-is-scalable-code-anyway-f6626ad78227)
|
192 | | Maintainable Code |:capital_abcd: [10+ Laravel Refactoring Examples](https://laraveldaily.com/course/laravel-refactoring?utm_source=github&utm_campaign=roadmap)
:page_facing_up: [How would you know if you've written readable and easily maintainable code? [forum thread]](https://softwareengineering.stackexchange.com/questions/141005/how-would-you-know-if-youve-written-readable-and-easily-maintainable-code)
:page_facing_up: [Crafting maintainable Laravel applications](https://jasonmccreary.me/articles/crafting-maintainable-laravel-applications/)
:page_facing_up: [7 Golden Rules of Clean, Simple and Maintainable Code](https://shhetri.github.io/clean-code/#/)
|
193 | | Best Practices and Standards |:page_facing_up: [Repository: alexeymezenin / laravel-best-practices](https://github.com/alexeymezenin/laravel-best-practices)
:capital_abcd: [PHP: The Right Way](https://phptherightway.com/)
:page_facing_up: [Reddit: What are your Laravel best practices?](https://www.reddit.com/r/laravel/comments/f34t86/what_are_your_laravel_best_practices/)
|
194 | | **Large Datasets** ||
195 | | Large Database Structures |:capital_abcd: [How to Structure Databases in Laravel](https://laraveldaily.com/course/laravel-database-structure?utm_source=github&utm_campaign=roadmap)
:capital_abcd: [GraphQL in Laravel From Scratch](https://laraveldaily.com/course/graphql-laravel?utm_source=github&utm_campaign=roadmap)
|
196 | | NoSQL Solutions |:book: [MongoDB and Laravel Integration](https://www.mongodb.com/compatibility/mongodb-laravel-intergration)
:page_facing_up: [MongoDB + Laravel = Love — When to use NoSQL](https://faun.pub/when-to-use-nosql-getting-started-with-mongodb-in-laravel-f5376ceaf545)
|
197 | | Eloquent/SQL Query Optimization |:capital_abcd: [Better Eloquent Performance](https://laraveldaily.com/course/eloquent-performance?utm_source=github&utm_campaign=roadmap)
:page_facing_up: [18 Tips to optimize laravel database queries](https://dudi.dev/optimize-laravel-database-queries/)
:page_facing_up: [Optimizing Laravel Part 2: Improving Query Performance with Database Indexing](https://deliciousbrains.com/optimizing-laravel-database-indexing-performance/)
:capital_abcd: [Eloquent Performance Patterns](https://eloquent-course.reinink.ca/)
|
198 | | Scaling to Multiple Databases |:page_facing_up: [Scaling Laravel App with Multiple Databases](https://devdojo.com/bobbyiliev/scaling-laravel-app-with-multiple-databases)
:page_facing_up: [Multiple DB Connections in Laravel](https://fideloper.com/laravel-multiple-database-connections)
|
199 | | **Working with High-Traffic Projects** ||
200 | | Stability and Zero-Downtime Deployments |:book: [Laravel Deployer](https://github.com/deployphp/deployer)
:book: [Envoyer - Zero Downtime PHP Deployment](https://envoyer.io/)
|
201 | | Performance Optimization and Caching |:capital_abcd: [Performant Laravel](https://serversforhackers.com/laravel-perf)
:page_facing_up: [The Ultimate Performance Checklist For Laravel Apps](https://laravel-news.com/performance-checklist)
:page_facing_up: [How to Optimize PHP Laravel Web Application for High Performance?](https://geekflare.com/laravel-optimization/)
|
202 | | **Ensuring Code Quality** ||
203 | | Writing Testable Code |:page_facing_up: [How to write testable code](https://dev.to/ddarrko/how-to-write-more-testable-code-oi7)
:page_facing_up: [Refactoring towards testability](https://madewithlove.com/blog/software-engineering/refactoring-untestable-code-towards-testability/)
|
204 | | Continuous Integration and Continuous Delivery (CI/CD) |:page_facing_up: [How to create a CI/CD for a Laravel application using GitHub Actions](https://blog.logrocket.com/how-to-create-a-ci-cd-for-a-laravel-application-using-github-actions/)
:page_facing_up: [Configure Laravel 8 for CI/CD with Jenkins and GitHub — Part 1](https://faun.pub/configure-laravel-8-for-ci-cd-with-jenkins-and-github-part-1-58b9be304292)
:page_facing_up: [Build, Test, and Deploy Your Laravel Application With GitHub Actions](https://www.twilio.com/blog/build-test-deploy-laravel-application-github-actions)
|
205 |
--------------------------------------------------------------------------------
/roadmap.sql:
--------------------------------------------------------------------------------
1 | -- -------------------------------------------------------------
2 | -- TablePlus 3.12.6(366)
3 | --
4 | -- https://tableplus.com/
5 | --
6 | -- Database: roadmap
7 | -- Generation Time: 2021-08-08 10:18:16.4690
8 | -- -------------------------------------------------------------
9 |
10 |
11 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
12 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
13 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
14 | /*!40101 SET NAMES utf8 */;
15 | /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
16 | /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
17 | /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
18 | /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
19 |
20 |
21 | CREATE TABLE `levels` (
22 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
23 | `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
24 | `position` int(11) NOT NULL,
25 | `created_at` timestamp NULL DEFAULT NULL,
26 | `updated_at` timestamp NULL DEFAULT NULL,
27 | `deleted_at` timestamp NULL DEFAULT NULL,
28 | `description` text COLLATE utf8mb4_unicode_ci NOT NULL,
29 | PRIMARY KEY (`id`)
30 | ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
31 |
32 | CREATE TABLE `link_topic` (
33 | `link_id` bigint(20) unsigned NOT NULL,
34 | `topic_id` bigint(20) unsigned NOT NULL,
35 | KEY `link_id_fk_4355454` (`link_id`),
36 | KEY `topic_id_fk_4355454` (`topic_id`),
37 | CONSTRAINT `link_id_fk_4355454` FOREIGN KEY (`link_id`) REFERENCES `links` (`id`) ON DELETE CASCADE,
38 | CONSTRAINT `topic_id_fk_4355454` FOREIGN KEY (`topic_id`) REFERENCES `topics` (`id`) ON DELETE CASCADE
39 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
40 |
41 | CREATE TABLE `link_types` (
42 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
43 | `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
44 | `created_at` timestamp NULL DEFAULT NULL,
45 | `updated_at` timestamp NULL DEFAULT NULL,
46 | `deleted_at` timestamp NULL DEFAULT NULL,
47 | PRIMARY KEY (`id`)
48 | ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
49 |
50 | CREATE TABLE `links` (
51 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
52 | `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
53 | `url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
54 | `created_at` timestamp NULL DEFAULT NULL,
55 | `updated_at` timestamp NULL DEFAULT NULL,
56 | `deleted_at` timestamp NULL DEFAULT NULL,
57 | `type_id` bigint(20) unsigned DEFAULT NULL,
58 | `position` int(11) NOT NULL DEFAULT '0',
59 | PRIMARY KEY (`id`),
60 | KEY `type_fk_4355451` (`type_id`),
61 | CONSTRAINT `type_fk_4355451` FOREIGN KEY (`type_id`) REFERENCES `link_types` (`id`)
62 | ) ENGINE=InnoDB AUTO_INCREMENT=196 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
63 |
64 | CREATE TABLE `projects` (
65 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
66 | `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
67 | `description` longtext COLLATE utf8mb4_unicode_ci,
68 | `created_at` timestamp NULL DEFAULT NULL,
69 | `updated_at` timestamp NULL DEFAULT NULL,
70 | `deleted_at` timestamp NULL DEFAULT NULL,
71 | `level_id` bigint(20) unsigned DEFAULT NULL,
72 | PRIMARY KEY (`id`),
73 | KEY `level_fk_4355474` (`level_id`),
74 | CONSTRAINT `level_fk_4355474` FOREIGN KEY (`level_id`) REFERENCES `levels` (`id`)
75 | ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
76 |
77 | CREATE TABLE `topics` (
78 | `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
79 | `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
80 | `created_at` timestamp NULL DEFAULT NULL,
81 | `updated_at` timestamp NULL DEFAULT NULL,
82 | `deleted_at` timestamp NULL DEFAULT NULL,
83 | `topic_id` bigint(20) unsigned DEFAULT NULL,
84 | `level_id` bigint(20) unsigned DEFAULT NULL,
85 | `position` int(11) NOT NULL DEFAULT '0',
86 | PRIMARY KEY (`id`),
87 | KEY `topic_fk_4355444` (`topic_id`),
88 | KEY `level_fk_4355464` (`level_id`),
89 | CONSTRAINT `level_fk_4355464` FOREIGN KEY (`level_id`) REFERENCES `levels` (`id`),
90 | CONSTRAINT `topic_fk_4355444` FOREIGN KEY (`topic_id`) REFERENCES `topics` (`id`)
91 | ) ENGINE=InnoDB AUTO_INCREMENT=142 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
92 |
93 | INSERT INTO `levels` (`id`, `name`, `position`, `created_at`, `updated_at`, `deleted_at`, `description`) VALUES
94 | (1, 'Beginner', 1, '2021-07-10 19:33:21', '2021-07-13 08:23:22', NULL, 'Create your very first simple Laravel project'),
95 | (2, 'Mid', 3, '2021-07-10 19:33:27', '2021-07-23 06:13:07', NULL, 'Master all Laravel features with 3-5 years of practical experience'),
96 | (3, 'Senior', 4, '2021-07-10 19:33:33', '2021-07-30 14:51:33', NULL, 'Responsibility for architecture decisions on large projects'),
97 | (4, 'Advanced Beginner', 2, '2021-07-13 08:23:32', '2021-07-13 08:23:32', NULL, 'The goal of this level is to find the first job or freelance gig');
98 |
99 | INSERT INTO `link_topic` (`link_id`, `topic_id`) VALUES
100 | (1, 1),
101 | (2, 4),
102 | (3, 3),
103 | (4, 4),
104 | (5, 8),
105 | (6, 8),
106 | (7, 14),
107 | (8, 15),
108 | (9, 37),
109 | (10, 37),
110 | (11, 16),
111 | (12, 26),
112 | (13, 26),
113 | (14, 27),
114 | (15, 28),
115 | (16, 28),
116 | (17, 19),
117 | (18, 22),
118 | (19, 23),
119 | (20, 23),
120 | (21, 23),
121 | (22, 24),
122 | (23, 18),
123 | (24, 34),
124 | (25, 33),
125 | (26, 39),
126 | (27, 10),
127 | (28, 11),
128 | (29, 13),
129 | (30, 36),
130 | (31, 60),
131 | (32, 59),
132 | (33, 21),
133 | (34, 21),
134 | (35, 50),
135 | (36, 51),
136 | (37, 52),
137 | (38, 53),
138 | (39, 53),
139 | (40, 30),
140 | (41, 30),
141 | (42, 61),
142 | (43, 61),
143 | (44, 61),
144 | (45, 61),
145 | (46, 62),
146 | (47, 63),
147 | (48, 63),
148 | (49, 64),
149 | (50, 64),
150 | (51, 70),
151 | (52, 76),
152 | (53, 69),
153 | (54, 69),
154 | (55, 54),
155 | (56, 56),
156 | (57, 56),
157 | (58, 57),
158 | (59, 57),
159 | (60, 58),
160 | (61, 58),
161 | (62, 58),
162 | (63, 58),
163 | (64, 58),
164 | (65, 66),
165 | (66, 67),
166 | (67, 67),
167 | (68, 68),
168 | (69, 77),
169 | (70, 77),
170 | (71, 77),
171 | (72, 77),
172 | (73, 77),
173 | (74, 72),
174 | (75, 73),
175 | (76, 72),
176 | (77, 78),
177 | (78, 78),
178 | (79, 78),
179 | (80, 79),
180 | (81, 79),
181 | (82, 78),
182 | (83, 81),
183 | (84, 17),
184 | (85, 17),
185 | (86, 82),
186 | (87, 83),
187 | (88, 84),
188 | (89, 84),
189 | (90, 86),
190 | (91, 87),
191 | (92, 88),
192 | (93, 89),
193 | (94, 89),
194 | (95, 89),
195 | (96, 90),
196 | (97, 91),
197 | (98, 92),
198 | (99, 93),
199 | (100, 93),
200 | (101, 94),
201 | (102, 94),
202 | (103, 95),
203 | (104, 96),
204 | (105, 40),
205 | (106, 42),
206 | (107, 44),
207 | (108, 46),
208 | (109, 32),
209 | (110, 97),
210 | (111, 98),
211 | (112, 99),
212 | (113, 100),
213 | (114, 100),
214 | (115, 101),
215 | (116, 101),
216 | (117, 101),
217 | (118, 101),
218 | (119, 102),
219 | (120, 103),
220 | (121, 104),
221 | (122, 104),
222 | (123, 74),
223 | (124, 101),
224 | (125, 13),
225 | (126, 105),
226 | (127, 105),
227 | (128, 106),
228 | (129, 106),
229 | (130, 108),
230 | (131, 108),
231 | (132, 109),
232 | (133, 110),
233 | (134, 112),
234 | (135, 113),
235 | (136, 113),
236 | (137, 113),
237 | (138, 115),
238 | (139, 116),
239 | (140, 116),
240 | (141, 42),
241 | (142, 86),
242 | (143, 86),
243 | (144, 88),
244 | (145, 97),
245 | (146, 32),
246 | (147, 32),
247 | (148, 90),
248 | (149, 90),
249 | (150, 91),
250 | (151, 117),
251 | (152, 119),
252 | (153, 119),
253 | (154, 119),
254 | (155, 119),
255 | (156, 119),
256 | (157, 138),
257 | (158, 139),
258 | (159, 140),
259 | (160, 121),
260 | (161, 121),
261 | (162, 121),
262 | (163, 121),
263 | (164, 98),
264 | (165, 47),
265 | (166, 35),
266 | (167, 122),
267 | (168, 122),
268 | (169, 122),
269 | (170, 123),
270 | (171, 123),
271 | (172, 123),
272 | (173, 124),
273 | (174, 125),
274 | (175, 125),
275 | (176, 125),
276 | (177, 129),
277 | (178, 129),
278 | (179, 127),
279 | (180, 129),
280 | (181, 128),
281 | (182, 128),
282 | (183, 130),
283 | (184, 130),
284 | (185, 132),
285 | (186, 132),
286 | (187, 133),
287 | (188, 133),
288 | (189, 133),
289 | (190, 135),
290 | (191, 135),
291 | (192, 137),
292 | (193, 137),
293 | (194, 137),
294 | (195, 141);
295 |
296 | INSERT INTO `link_types` (`id`, `name`, `created_at`, `updated_at`, `deleted_at`) VALUES
297 | (1, 'Article', '2021-07-10 19:33:39', '2021-07-10 19:33:39', NULL),
298 | (2, 'Course', '2021-07-10 19:33:43', '2021-07-10 19:33:43', NULL),
299 | (3, 'Official Docs', '2021-07-10 19:33:49', '2021-07-10 19:33:49', NULL),
300 | (4, 'Video', '2021-07-17 06:08:55', '2021-07-17 06:08:55', NULL);
301 |
302 | INSERT INTO `links` (`id`, `title`, `url`, `created_at`, `updated_at`, `deleted_at`, `type_id`, `position`) VALUES
303 | (1, 'Laravel Routing - Full Documentation Page', 'https://laravel.com/docs/8.x/routing', '2021-07-12 12:30:45', '2021-07-13 09:20:26', '2021-07-13 09:20:26', 3, 0),
304 | (2, 'Laravel Resource Controllers', 'https://laravel.com/docs/8.x/controllers#resource-controllers', '2021-07-12 12:32:40', '2021-07-12 12:32:40', NULL, 3, 0),
305 | (3, 'Basic Controllers with Routes', 'https://laravel.com/docs/8.x/controllers#basic-controllers', '2021-07-12 12:35:32', '2021-07-12 12:35:32', NULL, 3, 0),
306 | (4, 'Simple Laravel CRUD with Resource Controllers [digitalocean.com]', 'https://www.digitalocean.com/community/tutorials/simple-laravel-crud-with-resource-controllers', '2021-07-12 12:36:45', '2021-07-12 12:36:45', NULL, 1, 0),
307 | (5, 'View Routes', 'https://laravel.com/docs/8.x/routing#view-routes', '2021-07-13 09:09:49', '2021-07-13 09:09:49', NULL, 3, 2),
308 | (6, 'Basic Routing', 'https://laravel.com/docs/8.x/routing#basic-routing', '2021-07-13 09:10:11', '2021-07-13 09:10:11', NULL, 3, 1),
309 | (7, 'Laravel Blade - Full Documentation Page', 'https://laravel.com/docs/8.x/blade', '2021-07-13 09:15:35', '2021-07-13 09:20:24', '2021-07-13 09:20:24', 3, 0),
310 | (8, 'Blade: Displaying Data', 'https://laravel.com/docs/8.x/blade#displaying-data', '2021-07-13 09:16:16', '2021-07-13 09:16:23', NULL, 3, 0),
311 | (9, 'Blade: If-Statements', 'https://laravel.com/docs/8.x/blade#if-statements', '2021-07-13 09:18:04', '2021-07-13 09:18:04', NULL, 3, 0),
312 | (10, 'Blade Loops', 'https://laravel.com/docs/8.x/blade#loops', '2021-07-13 09:18:26', '2021-07-13 09:18:26', NULL, 3, 0),
313 | (11, 'Blade: Layout Using Template Inheritance', 'https://laravel.com/docs/8.x/blade#layouts-using-template-inheritance', '2021-07-13 09:19:46', '2021-07-13 09:19:46', NULL, 3, 0),
314 | (12, 'Laravel Breeze Official Documentation', 'https://laravel.com/docs/8.x/starter-kits#laravel-breeze', '2021-07-13 09:21:02', '2021-07-13 09:21:02', NULL, 3, 0),
315 | (13, 'Laravel UI: Official Github Page', 'https://github.com/laravel/ui', '2021-07-13 09:21:27', '2021-07-13 09:21:27', NULL, 3, 0),
316 | (14, 'Retrieving the Authenticated User', 'https://laravel.com/docs/8.x/authentication#retrieving-the-authenticated-user', '2021-07-13 09:22:41', '2021-07-13 09:22:41', NULL, 3, 0),
317 | (15, 'Determining If The Current User Is Authenticated', 'https://laravel.com/docs/8.x/authentication#determining-if-the-current-user-is-authenticated', '2021-07-13 09:23:33', '2021-07-13 09:24:15', NULL, 3, 0),
318 | (16, 'Blade: Authentication Directives', 'https://laravel.com/docs/8.x/blade#authentication-directives', '2021-07-13 09:24:00', '2021-07-13 09:24:00', NULL, 3, 0),
319 | (17, 'Database Migrations', 'https://laravel.com/docs/8.x/migrations', '2021-07-13 09:25:36', '2021-07-13 09:25:36', NULL, 3, 0),
320 | (18, 'Eloquent: Getting Started', 'https://laravel.com/docs/8.x/eloquent', '2021-07-13 09:26:26', '2021-07-13 09:26:26', NULL, 3, 0),
321 | (19, 'Eloquent Relationships: One-to-Many', 'https://laravel.com/docs/8.x/eloquent-relationships#one-to-many', '2021-07-13 09:31:41', '2021-07-13 09:32:47', NULL, 3, 0),
322 | (20, 'Eloquent Relationships: BelongsTo', 'https://laravel.com/docs/8.x/eloquent-relationships#one-to-many-inverse', '2021-07-13 09:32:08', '2021-07-13 09:32:08', NULL, 3, 0),
323 | (21, 'Eloquent Relationships: Many-to-Many', 'https://laravel.com/docs/8.x/eloquent-relationships#many-to-many', '2021-07-13 09:32:36', '2021-07-13 09:32:36', NULL, 3, 0),
324 | (22, 'Relationships: Eager Loading', 'https://laravel.com/docs/8.x/eloquent-relationships#eager-loading', '2021-07-13 09:34:00', '2021-07-13 09:34:00', NULL, 3, 0),
325 | (23, 'Laravel Validation', 'https://laravel.com/docs/8.x/validation', '2021-07-13 09:34:42', '2021-07-13 09:34:42', NULL, 3, 0),
326 | (24, 'Filesystem: File Uploads', 'https://laravel.com/docs/8.x/filesystem#file-uploads', '2021-07-13 09:35:38', '2021-07-13 09:36:02', NULL, 3, 0),
327 | (25, 'Database Pagination', 'https://laravel.com/docs/8.x/pagination', '2021-07-13 09:37:07', '2021-07-13 09:37:07', NULL, 3, 0),
328 | (26, 'Route Parameters', 'https://laravel.com/docs/8.x/routing#route-parameters', '2021-07-14 08:31:33', '2021-07-14 08:31:33', NULL, 3, 0),
329 | (27, 'Named Routes', 'https://laravel.com/docs/8.x/routing#named-routes', '2021-07-17 05:59:20', '2021-07-17 05:59:20', NULL, 3, 0),
330 | (28, 'Route Groups', 'https://laravel.com/docs/8.x/routing#route-groups', '2021-07-17 05:59:43', '2021-07-17 05:59:43', NULL, 3, 0),
331 | (29, 'Route Model Binding', 'https://laravel.com/docs/8.x/routing#route-model-binding', '2021-07-17 06:00:09', '2021-07-17 06:00:09', NULL, 3, 0),
332 | (30, 'Redirect Routes', 'https://laravel.com/docs/8.x/routing#redirect-routes', '2021-07-17 06:00:35', '2021-07-17 06:00:47', NULL, 3, 0),
333 | (31, 'Defining Middleware', 'https://laravel.com/docs/8.x/middleware#defining-middleware', '2021-07-17 06:01:32', '2021-07-17 06:01:32', NULL, 3, 0),
334 | (32, 'Protecting Routes', 'https://laravel.com/docs/8.x/authentication#protecting-routes', '2021-07-17 06:02:21', '2021-07-17 06:02:21', NULL, 3, 0),
335 | (33, 'Database: Seeding', 'https://laravel.com/docs/8.x/seeding', '2021-07-17 06:03:10', '2021-07-17 06:03:10', NULL, 3, 0),
336 | (34, 'Defining Model Factories', 'https://laravel.com/docs/8.x/database-testing#defining-model-factories', '2021-07-17 06:05:13', '2021-07-17 06:05:13', NULL, 3, 0),
337 | (35, 'Eloquent: Query Scopes', 'https://laravel.com/docs/8.x/eloquent#query-scopes', '2021-07-17 06:05:41', '2021-07-17 06:05:41', NULL, 3, 0),
338 | (36, 'Polymorphic Relationships', 'https://laravel.com/docs/8.x/eloquent-relationships#polymorphic-relationships', '2021-07-17 06:06:09', '2021-07-17 06:06:09', NULL, 3, 0),
339 | (37, 'Accessors & Mutators', 'https://laravel.com/docs/8.x/eloquent-mutators#accessors-and-mutators', '2021-07-17 06:06:34', '2021-07-17 06:06:34', NULL, 3, 0),
340 | (38, 'Eloquent Collections', 'https://laravel.com/docs/8.x/eloquent-collections', '2021-07-17 06:07:10', '2021-07-17 06:07:10', NULL, 3, 0),
341 | (39, 'General Laravel Collections', 'https://laravel.com/docs/8.x/collections', '2021-07-17 06:07:45', '2021-07-17 06:07:45', NULL, 3, 0),
342 | (40, 'Authorization', 'https://laravel.com/docs/8.x/authorization', '2021-07-17 06:08:31', '2021-07-17 06:08:31', NULL, 3, 0),
343 | (41, 'Laravel Roles and Permissions: All CORE Things You Need To Know', 'https://www.youtube.com/watch?v=kZOgH3-0Bko', '2021-07-17 06:09:17', '2021-07-17 06:09:17', NULL, 4, 0),
344 | (42, 'Spatie Laravel Permission: Example Project Review', 'https://www.youtube.com/watch?v=NgToi0uiMNQ', '2021-07-17 06:10:21', '2021-07-17 06:10:21', NULL, 4, 0),
345 | (43, 'Two Best Laravel Packages to Manage Roles/Permissions', 'https://laravel-news.com/two-best-roles-permissions-packages', '2021-07-17 06:10:49', '2021-07-17 06:10:49', NULL, 1, 0),
346 | (44, 'spatie/laravel-permission', 'https://github.com/spatie/laravel-permission', '2021-07-17 06:11:15', '2021-07-17 06:11:15', NULL, 3, 0),
347 | (45, 'JosephSilber/bouncer', 'https://github.com/JosephSilber/bouncer', '2021-07-17 06:11:34', '2021-07-17 06:11:34', NULL, 3, 0),
348 | (46, 'Email Verification', 'https://laravel.com/docs/8.x/verification', '2021-07-17 06:13:07', '2021-07-17 06:13:07', NULL, 3, 0),
349 | (47, 'File Storage', 'https://laravel.com/docs/8.x/filesystem', '2021-07-17 06:14:32', '2021-07-17 06:14:32', NULL, 3, 0),
350 | (48, 'Laravel: How to Upload Files to Amazon S3', 'https://www.youtube.com/watch?v=xZQM9q_QxMA', '2021-07-17 06:15:15', '2021-07-17 06:15:15', NULL, 4, 0),
351 | (49, 'spatie/laravel-medialibrary', 'https://github.com/spatie/laravel-medialibrary', '2021-07-17 06:16:13', '2021-07-17 06:16:13', NULL, 3, 0),
352 | (50, 'intervention/image', 'https://github.com/Intervention/image', '2021-07-17 06:16:43', '2021-07-17 06:16:43', NULL, 3, 0),
353 | (51, 'Eloquent: API Resources', 'https://laravel.com/docs/8.x/eloquent-resources', '2021-07-17 06:17:47', '2021-07-17 06:17:47', NULL, 3, 0),
354 | (52, 'Laravel Sanctum', 'https://laravel.com/docs/8.x/sanctum', '2021-07-17 06:19:12', '2021-07-17 06:19:12', NULL, 3, 0),
355 | (53, 'API Resource Routes', 'https://laravel.com/docs/8.x/controllers#api-resource-routes', '2021-07-17 06:20:13', '2021-07-17 06:20:13', NULL, 3, 0),
356 | (54, 'Default Route Files', 'https://laravel.com/docs/8.x/routing#the-default-route-files', '2021-07-17 06:21:04', '2021-07-17 06:21:04', NULL, 3, 0),
357 | (55, 'Logging', 'https://laravel.com/docs/8.x/logging', '2021-07-17 06:21:56', '2021-07-17 06:21:56', NULL, 3, 0),
358 | (56, 'Error Handling', 'https://laravel.com/docs/8.x/errors', '2021-07-17 06:22:48', '2021-07-17 06:22:48', NULL, 3, 0),
359 | (57, 'Exceptions in Laravel: Why/How to Use and Create Your Own', 'https://www.youtube.com/watch?v=RTTXZVIL6tw', '2021-07-17 06:23:53', '2021-07-17 06:23:53', NULL, 4, 0),
360 | (58, 'Custom HTTP Error Pages', 'https://laravel.com/docs/8.x/errors#custom-http-error-pages', '2021-07-17 06:25:05', '2021-07-17 06:25:05', NULL, 3, 0),
361 | (59, 'Laravel Error Pages: Change Text or Customize Layouts', 'https://www.youtube.com/watch?v=iMAFUi6Z57k', '2021-07-17 06:25:17', '2021-07-17 06:25:17', NULL, 4, 0),
362 | (60, 'Bugsnag Laravel', 'https://docs.bugsnag.com/platforms/php/laravel/', '2021-07-17 06:26:09', '2021-07-17 06:26:09', NULL, 3, 0),
363 | (61, 'Flare Homepage', 'https://flareapp.io/', '2021-07-17 06:26:44', '2021-07-17 06:26:44', NULL, 3, 0),
364 | (62, 'Sentry Laravel', 'https://docs.sentry.io/platforms/php/guides/laravel/', '2021-07-17 06:27:10', '2021-07-17 06:27:10', NULL, 3, 0),
365 | (63, 'Rollbar Laravel', 'https://docs.rollbar.com/docs/laravel', '2021-07-17 06:27:34', '2021-07-17 06:27:34', NULL, 3, 0),
366 | (64, 'Bug Tracking in Laravel: Bugsnag vs Flare [Demo/Review]', 'https://www.youtube.com/watch?v=88UqUXhWwGA', '2021-07-17 06:28:17', '2021-07-17 06:28:17', NULL, 4, 0),
367 | (65, 'Mail & Mailables', 'https://laravel.com/docs/8.x/mail', '2021-07-17 06:31:48', '2021-07-17 06:31:48', NULL, 3, 0),
368 | (66, 'How to Send Email From Laravel, and Why We Need 3rd Party Providers For It', 'https://laraveldaily.com/how-to-send-email-from-laravel-and-why-we-need-3rd-party-providers-for-it/', '2021-07-17 06:32:26', '2021-07-17 06:32:26', NULL, 1, 0),
369 | (67, 'Mail: Drivers Prerequisites', 'https://laravel.com/docs/8.x/mail#driver-prerequisites', '2021-07-17 06:32:55', '2021-07-17 06:32:55', NULL, 3, 0),
370 | (68, 'Notifications', 'https://laravel.com/docs/8.x/notifications', '2021-07-17 06:33:32', '2021-07-17 06:33:32', NULL, 3, 0),
371 | (69, 'barryvdh/laravel-debugbar', 'https://github.com/barryvdh/laravel-debugbar', '2021-07-17 06:37:27', '2021-07-17 06:37:27', NULL, 3, 0),
372 | (70, 'Laravel Telescope', 'https://laravel.com/docs/8.x/telescope', '2021-07-17 06:37:55', '2021-07-17 06:37:55', NULL, 3, 0),
373 | (71, 'Spatie Ray (Premium Tool)', 'https://myray.app/', '2021-07-17 06:38:52', '2021-07-17 06:38:52', NULL, 3, 0),
374 | (72, 'Debug Eloquent Queries from API: Laravel Telescope', 'https://www.youtube.com/watch?v=SR3RzIfeozI', '2021-07-17 06:40:46', '2021-07-17 06:40:46', NULL, 4, 0),
375 | (73, 'Spatie Ray: Laravel Debugging with Pleasure', 'https://www.youtube.com/watch?v=n4pMxyAXeqY', '2021-07-17 06:41:22', '2021-07-17 06:41:22', NULL, 4, 0),
376 | (74, 'Testing: Getting Started', 'https://laravel.com/docs/8.x/testing', '2021-07-17 06:43:24', '2021-07-17 06:43:24', NULL, 3, 0),
377 | (75, 'Database Testing', 'https://laravel.com/docs/8.x/database-testing', '2021-07-17 06:44:04', '2021-07-17 06:44:04', NULL, 3, 0),
378 | (76, 'Laravel: PHPUnit Testing for Beginners', 'https://laraveldaily.teachable.com/p/laravel-phpunit-testing-for-beginners', '2021-07-17 06:44:40', '2021-07-17 06:44:40', NULL, 2, 0),
379 | (77, 'Deployment', 'https://laravel.com/docs/8.x/deployment', '2021-07-17 06:46:36', '2021-07-17 06:46:36', NULL, 3, 0),
380 | (78, 'How to Deploy Laravel Projects to Live Server: The Ultimate Guide', 'https://laraveldaily.com/how-to-deploy-laravel-projects-to-live-server-the-ultimate-guide/', '2021-07-17 06:46:59', '2021-07-17 06:46:59', NULL, 1, 0),
381 | (79, 'What Server is Needed to Deploy Laravel Projects', 'https://laraveldaily.com/what-server-is-needed-to-deploy-laravel-projects/', '2021-07-17 06:47:22', '2021-07-17 06:47:22', NULL, 1, 0),
382 | (80, 'Git', 'https://git-scm.com/', '2021-07-17 06:47:58', '2021-07-17 06:47:58', NULL, 3, 0),
383 | (81, 'Git in Laravel. Part 1 - Branches: Main, Develop and Feature', 'https://www.youtube.com/watch?v=AmScEC-_72I', '2021-07-17 06:48:28', '2021-07-17 06:48:28', NULL, 4, 0),
384 | (82, 'How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer', 'https://www.youtube.com/watch?v=8DVuVftFZcQ', '2021-07-17 06:49:07', '2021-07-17 06:49:07', NULL, 4, 0),
385 | (83, 'Laravel Horizon', 'https://laravel.com/docs/8.x/horizon', '2021-07-22 03:03:23', '2021-07-22 03:03:23', NULL, 3, 0),
386 | (84, 'Blade Components', 'https://laravel.com/docs/8.x/blade#components', '2021-07-22 04:50:33', '2021-07-22 04:50:33', NULL, 3, 0),
387 | (85, 'Laravel Blade Components: Two Examples - Laravel Breeze/UI', 'https://www.youtube.com/watch?v=HybWBINeXMw', '2021-07-22 04:51:04', '2021-07-22 04:51:04', NULL, 4, 0),
388 | (86, 'Soft Deleting', 'https://laravel.com/docs/8.x/eloquent#soft-deleting', '2021-07-22 05:15:52', '2021-07-22 05:15:52', NULL, 3, 0),
389 | (87, 'Postman API Client', 'https://www.postman.com/product/api-client/', '2021-07-22 05:39:07', '2021-07-22 05:39:07', NULL, 3, 0),
390 | (88, 'Laravel API 404 Error: Customize Exception Message', 'https://www.youtube.com/watch?v=SlBJrLnyoMk', '2021-07-22 05:43:29', '2021-07-22 05:43:29', NULL, 4, 0),
391 | (89, 'HTTP Status Codes', 'https://httpstatuses.com/', '2021-07-22 05:44:21', '2021-07-22 05:44:21', NULL, 1, 0),
392 | (90, 'Eloquent Observers', 'https://laravel.com/docs/8.x/eloquent#observers', '2021-07-23 04:23:19', '2021-07-23 04:23:19', NULL, 3, 0),
393 | (91, 'Query Builder: Raw Expressions', 'https://laravel.com/docs/8.x/queries#raw-expressions', '2021-07-23 04:24:46', '2021-07-23 04:24:46', NULL, 3, 0),
394 | (92, 'Cache', 'https://laravel.com/docs/8.x/cache', '2021-07-23 04:26:17', '2021-07-23 04:26:17', NULL, 3, 0),
395 | (93, 'All About Eloquent', 'https://laravel.com/docs/8.x/eloquent', '2021-07-23 04:29:58', '2021-07-23 04:29:58', NULL, 3, 0),
396 | (94, 'Eloquent: Expert Level', 'https://laraveldaily.teachable.com/p/laravel-eloquent-expert-level', '2021-07-23 04:30:40', '2021-07-23 04:30:40', NULL, 2, 0),
397 | (95, '20 Laravel Eloquent Tips and Tricks', 'https://laravel-news.com/eloquent-tips-tricks', '2021-07-23 04:31:00', '2021-07-23 04:31:00', NULL, 1, 0),
398 | (96, 'Laravel Jetstream', 'https://jetstream.laravel.com', '2021-07-23 04:36:42', '2021-07-23 04:36:42', NULL, 3, 0),
399 | (97, 'Laravel Fortify', 'https://laravel.com/docs/8.x/fortify', '2021-07-23 04:37:37', '2021-07-23 04:37:37', NULL, 3, 0),
400 | (98, 'Laravel API: How to Upload File from Vue.js', 'https://blog.quickadminpanel.com/laravel-api-how-to-upload-file-from-vue-js/', '2021-07-23 04:40:53', '2021-07-23 04:40:53', NULL, 1, 0),
401 | (99, 'Laravel API Documentation with OpenAPI/Swagger', 'https://blog.quickadminpanel.com/laravel-api-documentation-with-openapiswagger/', '2021-07-23 04:42:46', '2021-07-23 04:42:46', NULL, 1, 0),
402 | (100, 'Scribe: New Package for Laravel API Documentation', 'https://www.youtube.com/watch?v=PjwGI8c2IfA', '2021-07-23 04:43:18', '2021-07-23 04:43:18', NULL, 4, 0),
403 | (101, 'Versioning your REST API with Laravel', 'https://codimth.com/blog/web/laravel/versioning-your-rest-api-laravel', '2021-07-23 04:46:49', '2021-07-23 04:46:49', NULL, 1, 0),
404 | (102, 'Versioning your API: from V1 to V2 and Beyond [video from my course]', 'https://laraveldaily.teachable.com/courses/how-to-create-laravel-api/lectures/17568998', '2021-07-23 04:48:00', '2021-07-23 04:48:00', NULL, 4, 0),
405 | (103, 'Vue.js + Laravel: CRUD with SPA', 'https://laraveldaily.teachable.com/p/vue-laravel-crud-spa', '2021-07-23 04:50:29', '2021-07-23 04:50:29', NULL, 2, 0),
406 | (104, 'Using Sanctum to authenticate a mobile app', 'https://laravel-news.com/using-sanctum-to-authenticate-a-mobile-app', '2021-07-23 04:51:30', '2021-07-23 04:51:30', NULL, 1, 0),
407 | (105, 'Route Caching', 'https://laravel.com/docs/8.x/routing#route-caching', '2021-07-23 04:53:23', '2021-07-23 04:53:23', NULL, 3, 0),
408 | (106, 'Rate Limiting', 'https://laravel.com/docs/8.x/routing#rate-limiting', '2021-07-23 04:53:43', '2021-07-23 04:53:43', NULL, 3, 0),
409 | (107, 'Single Action Controllers', 'https://laravel.com/docs/8.x/controllers#single-action-controllers', '2021-07-23 04:54:20', '2021-07-23 04:54:20', NULL, 3, 0),
410 | (108, 'Extending Blade', 'https://laravel.com/docs/8.x/blade#extending-blade', '2021-07-23 04:55:51', '2021-07-23 04:55:51', NULL, 3, 0),
411 | (109, 'Events and Listeners', 'https://laravel.com/docs/8.x/events', '2021-07-23 04:57:47', '2021-07-23 04:57:47', NULL, 3, 0),
412 | (110, 'Writing Artisan Commands', 'https://laravel.com/docs/8.x/artisan#writing-commands', '2021-07-23 04:58:44', '2021-07-23 04:59:43', NULL, 3, 0),
413 | (111, 'Task Scheduling', 'https://laravel.com/docs/8.x/scheduling', '2021-07-23 05:00:36', '2021-07-23 05:00:36', NULL, 3, 0),
414 | (112, 'Laravel Socialite', 'https://laravel.com/docs/8.x/socialite', '2021-07-23 05:01:17', '2021-07-23 05:01:17', NULL, 3, 0),
415 | (113, 'HTTP Client', 'https://laravel.com/docs/8.x/http-client', '2021-07-23 05:02:12', '2021-07-23 05:02:12', NULL, 3, 0),
416 | (114, 'Laravel and External APIs: Get Data with HTTP Client', 'https://www.youtube.com/watch?v=oEDDZsmMLc0', '2021-07-23 05:02:42', '2021-07-23 05:02:42', NULL, 4, 0),
417 | (115, 'Creating Jobs', 'https://laravel.com/docs/8.x/queues#creating-jobs', '2021-07-23 05:12:13', '2021-07-23 05:12:13', NULL, 3, 0),
418 | (116, 'Queueing Notifications', 'https://laravel.com/docs/8.x/notifications#queueing-notifications', '2021-07-23 05:12:49', '2021-07-23 05:12:49', NULL, 3, 0),
419 | (117, 'Queued Event Listeners', 'https://laravel.com/docs/8.x/events#queued-event-listeners', '2021-07-23 05:13:21', '2021-07-23 05:13:21', NULL, 3, 0),
420 | (118, 'Queueing Mail', 'https://laravel.com/docs/8.x/mail#queueing-mail', '2021-07-23 05:14:05', '2021-07-23 05:14:05', NULL, 3, 0),
421 | (119, 'Dealing with Failed Jobs', 'https://laravel.com/docs/8.x/queues#dealing-with-failed-jobs', '2021-07-23 05:15:00', '2021-07-23 05:15:00', NULL, 3, 0),
422 | (120, 'Dispatching Jobs', 'https://laravel.com/docs/8.x/queues#dispatching-jobs', '2021-07-23 05:15:46', '2021-07-23 05:15:46', NULL, 3, 0),
423 | (121, 'Running the Queue Worker', 'https://laravel.com/docs/8.x/queues#running-the-queue-worker', '2021-07-23 05:17:06', '2021-07-23 05:17:06', NULL, 3, 0),
424 | (122, 'Configuring Supervisor', 'https://laravel.com/docs/8.x/queues#supervisor-configuration', '2021-07-23 05:17:33', '2021-07-23 05:17:33', NULL, 3, 0),
425 | (123, 'Queues in Laravel', 'https://laraveldaily.teachable.com/p/queues-in-laravel', '2021-07-23 05:18:05', '2021-07-23 05:18:05', NULL, 2, 0),
426 | (124, 'Laravel Queues 101: Example with Sending Emails', 'https://www.youtube.com/watch?v=rVx8xKisbr8', '2021-07-23 05:18:41', '2021-07-23 05:18:41', NULL, 4, 0),
427 | (125, 'Laravel Route Model Binding: All You Need To Know', 'https://www.youtube.com/watch?v=6dEfxGLgevM', '2021-07-23 05:39:07', '2021-07-23 05:39:07', NULL, 4, 0),
428 | (126, 'Laravel Cashier (Stripe)', 'https://laravel.com/docs/8.x/billing', '2021-07-23 05:53:53', '2021-07-23 05:53:53', NULL, 3, 0),
429 | (127, 'Laravel Cashier (Paddle)', 'https://laravel.com/docs/8.x/cashier-paddle', '2021-07-23 05:54:18', '2021-07-23 05:54:18', NULL, 3, 0),
430 | (128, 'Subscription billing with Laravel Cashier for Mollie', 'https://github.com/laravel/cashier-mollie', '2021-07-23 05:55:51', '2021-07-23 05:55:51', NULL, 1, 0),
431 | (129, 'How To Integrate Paypal Payment Gateway In Laravel', 'https://websolutionstuff.com/post/how-to-integrate-paypal-payment-gateway-in-laravel', '2021-07-23 05:57:06', '2021-07-23 05:57:06', NULL, 1, 0),
432 | (130, 'Build A Laravel App With TDD', 'https://laracasts.com/series/build-a-laravel-app-with-tdd', '2021-07-23 05:59:45', '2021-07-23 05:59:45', NULL, 2, 0),
433 | (131, 'TDD With Laravel', 'https://tddwithlaravel.com/', '2021-07-23 06:01:48', '2021-07-23 06:01:48', NULL, 2, 0),
434 | (132, 'Mocking', 'https://laravel.com/docs/8.x/mocking', '2021-07-23 06:02:28', '2021-07-23 06:02:28', NULL, 3, 0),
435 | (133, 'Laravel Dusk', 'https://laravel.com/docs/8.x/dusk', '2021-07-23 06:03:17', '2021-07-23 06:03:17', NULL, 3, 0),
436 | (134, 'Laravel Scout', 'https://laravel.com/docs/8.x/scout', '2021-07-23 06:04:24', '2021-07-23 06:04:24', NULL, 3, 0),
437 | (135, 'ElasticSearch Driver for Laravel Scout', 'https://laravel-news.com/explorer', '2021-07-23 06:05:33', '2021-07-23 06:05:33', NULL, 1, 0),
438 | (136, 'Algolia: Scout Extended', 'https://www.algolia.com/doc/framework-integration/laravel/getting-started/introduction-to-scout-extended/?client=php', '2021-07-23 06:06:08', '2021-07-23 06:06:08', NULL, 3, 0),
439 | (137, 'Full-Text Search with MeiliSearch and Laravel Scout', 'https://tighten.co/blog/full-text-search-with-meilisearch-and-scout/', '2021-07-23 06:07:00', '2021-07-23 06:07:00', NULL, 1, 0),
440 | (138, 'How to Contribute to Laravel Docs (or any open-source repository)', 'https://www.youtube.com/watch?v=vEcT6JIFji0', '2021-07-23 06:08:09', '2021-07-23 06:08:09', NULL, 4, 0),
441 | (139, 'Package Development', 'https://laravel.com/docs/8.x/packages', '2021-07-23 06:08:56', '2021-07-23 06:08:56', NULL, 3, 0),
442 | (140, 'Laravel Package Development', 'https://laravelpackage.com/', '2021-07-23 06:09:47', '2021-07-23 06:09:47', NULL, 2, 0),
443 | (141, 'Laravel: Create Public API with Cache and Rate Limits', 'https://www.youtube.com/watch?v=vrLcCxWlxOk', '2021-07-23 07:08:51', '2021-07-23 07:08:51', NULL, 4, 0),
444 | (142, 'Laravel Model: Check if Any Field Was Changed', 'https://www.youtube.com/watch?v=_xluet13xxE', '2021-07-23 07:10:58', '2021-07-23 07:10:58', NULL, 4, 0),
445 | (143, 'Eloquent Observers or Events Listeners? Which is Better?', 'https://www.youtube.com/watch?v=DvoaU6cQQHM', '2021-07-23 07:11:23', '2021-07-23 07:11:23', NULL, 4, 0),
446 | (144, 'Cache Eloquent Query Results to Load Pages Instantly', 'https://www.youtube.com/watch?v=JhKngeE0XJA', '2021-07-23 07:12:11', '2021-07-23 07:12:11', NULL, 4, 0),
447 | (145, 'How to Create Artisan Commands in Laravel', 'https://www.youtube.com/watch?v=-r3WnYy7g48', '2021-07-23 07:12:59', '2021-07-23 07:12:59', NULL, 4, 0),
448 | (146, 'Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)', 'https://www.youtube.com/watch?v=ZWzH6SOzjhI', '2021-07-23 07:14:06', '2021-07-23 07:14:06', NULL, 4, 0),
449 | (147, 'Laravel: Why Observers and Event Listeners are \"Risky\"', 'https://www.youtube.com/watch?v=A3bmLo77e5M', '2021-07-23 07:14:28', '2021-07-23 07:14:28', NULL, 4, 0),
450 | (148, 'Laravel Jetstream+Livewire: Real Mini-Project', 'https://laraveldaily.teachable.com/p/laravel-jetstream-livewire-project', '2021-07-23 07:15:39', '2021-07-23 07:15:39', NULL, 2, 0),
451 | (149, 'Laravel Jetstream: How it Works and Example How to Customize', 'https://www.youtube.com/watch?v=d8YgWApHMfA', '2021-07-23 07:16:14', '2021-07-23 07:16:14', NULL, 4, 0),
452 | (150, 'Laravel Fortify: Four Auth Things to Customize', 'https://www.youtube.com/watch?v=Vr4LJU3kw1g', '2021-07-23 07:17:52', '2021-07-23 07:17:52', NULL, 4, 0),
453 | (151, 'Broadcasting', 'https://laravel.com/docs/8.x/broadcasting', '2021-07-25 04:43:58', '2021-07-25 04:43:58', NULL, 3, 0),
454 | (152, 'Laravel Design Patterns - Bobby Bouwmann - Laracon EU 2018 Amsterdam', 'https://www.youtube.com/watch?v=qpo5KG0vIyE', '2021-08-02 18:30:40', '2021-08-02 18:30:40', NULL, 4, 0),
455 | (153, 'Laracasts: Design Patterns in PHP', 'https://laracasts.com/series/design-patterns-in-php', '2021-08-02 18:31:07', '2021-08-02 18:31:07', NULL, 2, 0),
456 | (154, 'Colin Decarlo - Design Patterns with Laravel [Laracon 2018]', 'https://www.youtube.com/watch?v=e4ugSgGaCQ0', '2021-08-02 18:31:59', '2021-08-02 18:31:59', NULL, 4, 0),
457 | (155, 'Matt Stauffer - Patterns That Pay Off [Laracon 2018]', 'https://www.youtube.com/watch?v=enTb2E4vEos', '2021-08-02 18:32:40', '2021-08-02 18:32:40', NULL, 4, 0),
458 | (156, 'Design Patterns in PHP', 'https://refactoring.guru/design-patterns/php', '2021-08-02 18:33:01', '2021-08-02 18:33:01', NULL, 2, 0),
459 | (157, 'Design Patterns PHP: Creational', 'https://designpatternsphp.readthedocs.io/en/latest/Creational/README.html', '2021-08-02 18:33:34', '2021-08-02 18:33:34', NULL, 1, 0),
460 | (158, 'Design Patterns PHP: Structural', 'https://designpatternsphp.readthedocs.io/en/latest/Structural/README.html', '2021-08-02 18:33:58', '2021-08-02 18:33:58', NULL, 1, 0),
461 | (159, 'Design Patterns PHP: Behavioral', 'https://designpatternsphp.readthedocs.io/en/latest/Behavioral/README.html', '2021-08-02 18:34:22', '2021-08-02 18:34:22', NULL, 1, 0),
462 | (160, 'Becoming a better developer by using the SOLID design principles by Katerina Trajchevska', 'https://www.youtube.com/watch?v=rtmFCcjEgEw', '2021-08-03 08:00:15', '2021-08-03 08:00:15', NULL, 4, 0),
463 | (161, 'Writing Maintainable Code: SOLID Principles Explained in PHP (Laravel)', 'https://geekflare.com/php-solid-principles/', '2021-08-03 08:01:01', '2021-08-03 08:01:01', NULL, 1, 0),
464 | (162, 'Laracasts: SOLID Principles in PHP', 'https://laracasts.com/series/solid-principles-in-php', '2021-08-03 08:01:25', '2021-08-03 08:01:25', NULL, 2, 0),
465 | (163, 'PHP Solid Principles [Playlist]', 'https://www.youtube.com/watch?v=ARxZV8OZ8Cg&list=PLNuh5_K9dfQ3jMU-2C2jYRGe2iXJkpCZj', '2021-08-03 08:01:54', '2021-08-03 08:01:54', NULL, 4, 0),
466 | (164, 'Laravel Task Scheduling: Run Artisan Command Hourly', 'https://www.youtube.com/watch?v=r-KrsQ0dN80', '2021-08-04 04:31:18', '2021-08-04 04:31:18', NULL, 4, 0),
467 | (165, 'How to Create Laravel API', 'https://laraveldaily.teachable.com/p/how-to-create-laravel-api', '2021-08-04 04:32:08', '2021-08-04 04:32:08', NULL, 2, 0),
468 | (166, 'File Uploads in Laravel', 'https://laraveldaily.teachable.com/p/file-uploads-in-laravel', '2021-08-04 04:33:08', '2021-08-04 04:33:08', NULL, 2, 0),
469 | (167, 'Scaling Laravel', 'https://courses.serversforhackers.com/scaling-laravel', '2021-08-05 08:39:02', '2021-08-05 08:39:02', NULL, 2, 0),
470 | (168, 'Enterprise Laravel by Matt Stauffer', 'https://enterpriselaravel.com/', '2021-08-05 08:40:06', '2021-08-05 08:40:06', NULL, 4, 0),
471 | (169, 'What the hell is scalable code anyway?', 'https://blog.sarasarya.com/what-the-hell-is-scalable-code-anyway-f6626ad78227', '2021-08-05 08:41:41', '2021-08-05 08:41:41', NULL, 1, 0),
472 | (170, 'How would you know if you\'ve written readable and easily maintainable code? [forum thread]', 'https://softwareengineering.stackexchange.com/questions/141005/how-would-you-know-if-youve-written-readable-and-easily-maintainable-code', '2021-08-05 08:45:14', '2021-08-05 08:45:14', NULL, 1, 0),
473 | (171, 'Crafting maintainable Laravel applications', 'https://jasonmccreary.me/articles/crafting-maintainable-laravel-applications/', '2021-08-05 08:47:29', '2021-08-05 08:47:29', NULL, 1, 0),
474 | (172, '7 Golden Rules of Clean, Simple and Maintainable Code', 'https://shhetri.github.io/clean-code/#/', '2021-08-05 08:48:32', '2021-08-05 08:48:32', NULL, 1, 0),
475 | (173, 'How to Create Reusable Code with Laravel 8 Traits', 'https://www.remotestack.io/how-to-create-reusable-code-with-laravel-traits/', '2021-08-05 08:50:23', '2021-08-05 08:51:05', '2021-08-05 08:51:05', 1, 0),
476 | (174, 'Repository: alexeymezenin / laravel-best-practices', 'https://github.com/alexeymezenin/laravel-best-practices', '2021-08-05 08:51:55', '2021-08-05 08:51:55', NULL, 1, 0),
477 | (175, 'PHP: The Right Way', 'https://phptherightway.com/', '2021-08-05 08:55:11', '2021-08-05 08:55:11', NULL, 2, 0),
478 | (176, 'Reddit: What are your Laravel best practices?', 'https://www.reddit.com/r/laravel/comments/f34t86/what_are_your_laravel_best_practices/', '2021-08-05 08:56:16', '2021-08-05 08:56:16', NULL, 1, 0),
479 | (177, '18 Tips to optimize laravel database queries', 'https://dudi.dev/optimize-laravel-database-queries/', '2021-08-06 05:21:00', '2021-08-06 05:21:00', NULL, 1, 0),
480 | (178, 'Optimizing Laravel Part 2: Improving Query Performance with Database Indexing', 'https://deliciousbrains.com/optimizing-laravel-database-indexing-performance/', '2021-08-06 05:22:58', '2021-08-06 05:22:58', NULL, 1, 0),
481 | (179, 'How to Structure Databases in Laravel', 'https://laraveldaily.teachable.com/p/how-to-structure-database-in-laravel', '2021-08-06 05:24:52', '2021-08-06 05:24:52', NULL, 2, 0),
482 | (180, 'Eloquent Performance Patterns', 'https://eloquent-course.reinink.ca/', '2021-08-06 05:25:31', '2021-08-06 05:25:31', NULL, 2, 0),
483 | (181, 'MongoDB and Laravel Integration', 'https://www.mongodb.com/compatibility/mongodb-laravel-intergration', '2021-08-06 05:30:11', '2021-08-06 05:30:11', NULL, 3, 0),
484 | (182, 'MongoDB + Laravel = Love — When to use NoSQL', 'https://faun.pub/when-to-use-nosql-getting-started-with-mongodb-in-laravel-f5376ceaf545', '2021-08-06 05:31:34', '2021-08-06 05:31:34', NULL, 1, 0),
485 | (183, 'Scaling Laravel App with Multiple Databases', 'https://devdojo.com/bobbyiliev/scaling-laravel-app-with-multiple-databases', '2021-08-06 05:34:36', '2021-08-06 05:34:36', NULL, 1, 0),
486 | (184, 'Multiple DB Connections in Laravel', 'https://fideloper.com/laravel-multiple-database-connections', '2021-08-06 05:35:42', '2021-08-06 05:35:42', NULL, 1, 0),
487 | (185, 'Laravel Deployer', 'https://github.com/lorisleiva/laravel-deployer', '2021-08-06 05:44:25', '2021-08-06 05:44:25', NULL, 3, 0),
488 | (186, 'Envoyer - Zero Downtime PHP Deployment', 'https://envoyer.io/', '2021-08-06 05:44:56', '2021-08-06 05:44:56', NULL, 3, 0),
489 | (187, 'Performant Laravel', 'https://serversforhackers.com/laravel-perf', '2021-08-06 05:47:15', '2021-08-06 05:47:15', NULL, 2, 0),
490 | (188, 'The Ultimate Performance Checklist For Laravel Apps', 'https://laravel-news.com/performance-checklist', '2021-08-06 05:48:35', '2021-08-06 05:48:35', NULL, 1, 0),
491 | (189, 'How to Optimize PHP Laravel Web Application for High Performance?', 'https://geekflare.com/laravel-optimization/', '2021-08-06 05:51:34', '2021-08-06 05:51:34', NULL, 1, 0),
492 | (190, 'How to write testable code', 'https://dev.to/ddarrko/how-to-write-more-testable-code-oi7', '2021-08-06 05:54:08', '2021-08-06 05:54:08', NULL, 1, 0),
493 | (191, 'Refactoring towards testability', 'https://madewithlove.com/blog/software-engineering/refactoring-untestable-code-towards-testability/', '2021-08-06 05:54:35', '2021-08-06 05:54:35', NULL, 1, 0),
494 | (192, 'How to create a CI/CD for a Laravel application using GitHub Actions', 'https://blog.logrocket.com/how-to-create-a-ci-cd-for-a-laravel-application-using-github-actions/', '2021-08-06 05:57:59', '2021-08-06 05:57:59', NULL, 1, 0),
495 | (193, 'Configure Laravel 8 for CI/CD with Jenkins and GitHub — Part 1', 'https://faun.pub/configure-laravel-8-for-ci-cd-with-jenkins-and-github-part-1-58b9be304292', '2021-08-06 05:59:06', '2021-08-06 05:59:06', NULL, 1, 0),
496 | (194, 'Build, Test, and Deploy Your Laravel Application With GitHub Actions', 'https://www.twilio.com/blog/build-test-deploy-laravel-application-github-actions', '2021-08-06 05:59:47', '2021-08-06 05:59:47', NULL, 1, 0),
497 | (195, 'Laravel Passport', 'https://laravel.com/docs/8.x/passport', '2021-08-08 07:14:45', '2021-08-08 07:14:45', NULL, 3, 0);
498 |
499 | INSERT INTO `projects` (`id`, `name`, `description`, `created_at`, `updated_at`, `deleted_at`, `level_id`) VALUES
500 | (1, 'Building a Simple Blog with Authentication', 'Description of the project is coming soon.', '2021-07-13 08:55:14', '2021-07-17 07:04:59', NULL, 1),
501 | (2, 'Mini CRM', 'Description of the project is coming soon.', '2021-07-17 07:05:21', '2021-07-17 07:05:21', NULL, 4);
502 |
503 | INSERT INTO `topics` (`id`, `name`, `created_at`, `updated_at`, `deleted_at`, `topic_id`, `level_id`, `position`) VALUES
504 | (1, 'Routing and Controllers: Basics', '2021-07-12 12:23:27', '2021-07-13 08:19:39', NULL, NULL, 1, 1),
505 | (2, 'Database Basics', '2021-07-12 12:23:36', '2021-07-13 08:35:03', NULL, NULL, 1, 4),
506 | (3, 'Routing to a Single Controller Method', '2021-07-12 12:24:24', '2021-07-12 12:35:40', NULL, 1, 1, 2),
507 | (4, 'Route Resource and Resourceful Controllers', '2021-07-12 12:24:40', '2021-07-13 09:28:18', NULL, 38, 1, 1),
508 | (8, 'Callback Functions and Route::view()', '2021-07-13 08:18:23', '2021-07-13 09:08:59', NULL, 1, 1, 1),
509 | (9, 'Routing Advanced', '2021-07-13 08:24:21', '2021-07-13 08:24:21', NULL, NULL, 4, 1),
510 | (10, 'Route Naming', '2021-07-13 08:24:40', '2021-07-22 06:51:40', NULL, 1, 1, 4),
511 | (11, 'Route Groups', '2021-07-13 08:25:06', '2021-07-22 04:55:06', NULL, 1, 1, 5),
512 | (12, 'Middleware', '2021-07-13 08:25:34', '2021-07-16 08:22:41', NULL, NULL, 4, 2),
513 | (13, 'Route Model Binding', '2021-07-13 08:28:16', '2021-07-13 08:28:16', NULL, 9, 4, 1),
514 | (14, 'Blade Basics', '2021-07-13 08:29:19', '2021-07-13 08:29:19', NULL, NULL, 1, 2),
515 | (15, 'Displaying Variables in Blade', '2021-07-13 08:30:41', '2021-07-13 09:17:32', NULL, 14, 1, 1),
516 | (16, 'Layout: @include, @extends, @section, @yield', '2021-07-13 08:31:25', '2021-07-13 08:31:25', NULL, 14, 1, 3),
517 | (17, 'Blade Components', '2021-07-13 08:32:20', '2021-07-22 04:48:34', NULL, 14, 1, 4),
518 | (18, 'Forms, Validation and Form Requests', '2021-07-13 08:33:59', '2021-07-13 09:29:15', NULL, 38, 1, 2),
519 | (19, 'Database Migrations', '2021-07-13 08:35:16', '2021-07-13 08:35:16', NULL, 2, 1, 1),
520 | (20, 'Database Advanced', '2021-07-13 08:35:39', '2021-07-14 12:32:06', NULL, NULL, 4, 3),
521 | (21, 'Database Seeders and Factories', '2021-07-13 08:36:26', '2021-07-13 08:36:26', NULL, 20, 2, 1),
522 | (22, 'Basic Eloquent Model and MVC: Controller -> Model -> View', '2021-07-13 08:38:52', '2021-07-13 08:39:06', NULL, 2, 1, 2),
523 | (23, 'Eloquent Relationships: belongsTo / hasMany / belongsToMany', '2021-07-13 08:40:34', '2021-07-13 08:40:34', NULL, 2, 1, 3),
524 | (24, 'Eager Loading and N+1 Query Problem', '2021-07-13 08:41:26', '2021-07-13 08:41:26', NULL, 2, 1, 4),
525 | (25, 'Auth Basics', '2021-07-13 08:44:05', '2021-07-13 08:44:05', NULL, NULL, 1, 3),
526 | (26, 'Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap)', '2021-07-13 08:44:49', '2021-07-13 08:47:39', NULL, 25, 1, 1),
527 | (27, 'Default Auth Model and Access its Fields from Anywhere', '2021-07-13 08:46:44', '2021-07-13 08:48:19', NULL, 25, 1, 2),
528 | (28, 'Check Auth in Controller / Blade', '2021-07-13 08:47:05', '2021-07-13 08:53:30', NULL, 25, 1, 3),
529 | (29, 'Auth Advanced', '2021-07-13 08:49:28', '2021-07-13 08:49:28', NULL, NULL, 4, 4),
530 | (30, 'Authorization: Roles/Permissions, Gates, Policies', '2021-07-13 08:49:57', '2021-07-16 08:24:30', NULL, 29, 4, 1),
531 | (31, '(optional) Starter Kits: Laravel Jetstream and Fortify', '2021-07-13 08:51:02', '2021-07-13 08:51:02', NULL, NULL, 2, 6),
532 | (32, 'Events and Listeners', '2021-07-13 08:52:34', '2021-07-13 08:52:34', NULL, 43, 2, 2),
533 | (33, 'Table Pagination', '2021-07-13 08:58:23', '2021-07-13 09:29:28', NULL, 38, 1, 4),
534 | (34, 'File Uploads and Storage Folder Basics', '2021-07-13 08:59:03', '2021-07-13 09:28:53', NULL, 38, 1, 3),
535 | (35, 'File Uploads Advanced', '2021-07-13 08:59:39', '2021-07-16 08:26:30', NULL, NULL, 4, 5),
536 | (36, 'Route Redirect', '2021-07-13 09:02:59', '2021-07-13 09:02:59', NULL, 9, 4, 2),
537 | (37, 'Blade If-Else and Loop Structures', '2021-07-13 09:17:08', '2021-07-13 09:17:08', NULL, 14, 1, 2),
538 | (38, 'Full Simple CRUD', '2021-07-13 09:28:06', '2021-07-13 09:28:06', NULL, NULL, 1, 5),
539 | (39, 'Route Parameters', '2021-07-14 08:31:14', '2021-07-14 08:31:14', NULL, 1, 1, 3),
540 | (40, 'Route Caching', '2021-07-14 08:41:25', '2021-07-14 09:57:58', NULL, 41, 2, 1),
541 | (41, 'Routing Extra Features', '2021-07-14 09:57:48', '2021-07-14 09:57:48', NULL, NULL, 2, 1),
542 | (42, 'Rate Limiting', '2021-07-14 09:59:09', '2021-07-14 09:59:09', NULL, 41, 2, 2),
543 | (43, 'Various Extra Laravel Features', '2021-07-14 10:01:12', '2021-07-14 10:01:12', NULL, NULL, 2, 3),
544 | (44, 'Invokable controllers', '2021-07-14 10:01:35', '2021-07-14 10:01:35', NULL, 41, 2, 3),
545 | (46, 'Custom Blade Directives', '2021-07-14 12:12:24', '2021-07-14 12:12:24', NULL, 43, 2, 1),
546 | (47, 'API Basics', '2021-07-14 12:16:32', '2021-07-14 12:16:32', NULL, NULL, 4, 6),
547 | (48, 'API Advanced', '2021-07-14 12:18:09', '2021-07-14 12:18:09', NULL, NULL, 2, 5),
548 | (50, 'Eloquent Query Scopes', '2021-07-14 12:30:55', '2021-07-14 12:30:55', NULL, 20, 2, 2),
549 | (51, 'Polymorphic relationships', '2021-07-14 12:31:30', '2021-07-14 12:31:30', NULL, 20, 4, 3),
550 | (52, 'Eloquent Accessors and Mutators', '2021-07-14 12:32:35', '2021-07-14 12:32:35', NULL, 20, 4, 4),
551 | (53, 'Eloquent Collections', '2021-07-16 08:15:51', '2021-07-16 08:15:51', NULL, 20, 4, 5),
552 | (54, 'Log Files in Laravel', '2021-07-16 08:17:08', '2021-07-16 08:18:22', NULL, 55, 4, 1),
553 | (55, 'Debugging Errors', '2021-07-16 08:17:56', '2021-07-16 08:17:56', NULL, NULL, 4, 7),
554 | (56, 'Try-Catch and Laravel Exceptions', '2021-07-16 08:19:24', '2021-07-16 08:19:24', NULL, 55, 4, 2),
555 | (57, 'Customizing Error Pages and Messages', '2021-07-16 08:20:22', '2021-07-16 08:20:22', NULL, 55, 4, 4),
556 | (58, '(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar', '2021-07-16 08:21:04', '2021-07-16 08:21:04', NULL, 55, 4, 5),
557 | (59, 'Auth Middleware', '2021-07-16 08:22:15', '2021-07-22 04:57:31', NULL, 25, 1, 4),
558 | (60, 'Create Custom Middleware Class', '2021-07-16 08:22:32', '2021-07-16 08:22:32', NULL, 12, 4, 1),
559 | (61, 'Authorization: Extra Packages - Spatie Permission, Bouncer, etc', '2021-07-16 08:24:10', '2021-07-17 06:12:28', NULL, 29, 4, 2),
560 | (62, 'Authentication: Email Verification', '2021-07-16 08:24:53', '2021-07-16 08:24:53', NULL, 29, 4, 3),
561 | (63, 'Drivers and Disks, Example of Amazon S3', '2021-07-16 08:26:21', '2021-07-16 08:26:21', NULL, 35, 4, 1),
562 | (64, 'Extra Packages: Spatie Medialibrary, Intervention Image, etc', '2021-07-16 08:26:50', '2021-07-16 08:26:50', NULL, 35, 4, 2),
563 | (65, 'Sending Email', '2021-07-16 08:27:48', '2021-07-16 08:27:48', NULL, NULL, 4, 8),
564 | (66, 'Mailables and Mail Facade', '2021-07-16 08:28:05', '2021-07-16 08:28:05', NULL, 65, 4, 1),
565 | (67, 'Configure Drivers/Services: Mailgun, Mailtrap, etc', '2021-07-16 08:28:40', '2021-07-16 08:28:40', NULL, 65, 4, 2),
566 | (68, 'Notifications System: Email, SMS, Slack, etc.', '2021-07-16 08:29:07', '2021-07-16 08:29:07', NULL, 65, 4, 3),
567 | (69, 'API Routes and Controllers', '2021-07-16 08:30:26', '2021-07-16 08:30:26', NULL, 47, 4, 1),
568 | (70, 'API Eloquent Resources', '2021-07-16 08:30:46', '2021-07-16 08:30:46', NULL, 47, 4, 3),
569 | (71, 'Automated Testing with PHPUnit', '2021-07-16 08:32:31', '2021-07-16 08:32:31', NULL, NULL, 4, 9),
570 | (72, '\"Smoke\" Tests to Check if Pages are Loading', '2021-07-16 08:32:49', '2021-07-16 08:32:49', NULL, 71, 4, 1),
571 | (73, 'Configure Testing Database and Test CRUD Operations', '2021-07-16 08:33:30', '2021-07-16 08:33:30', NULL, 71, 4, 2),
572 | (74, 'Jobs and Queues', '2021-07-16 18:15:54', '2021-07-16 18:15:54', NULL, NULL, 2, 4),
573 | (75, 'Deployment and Version Control', '2021-07-16 18:18:52', '2021-07-17 06:45:24', NULL, NULL, 4, 10),
574 | (76, 'API Auth with Sanctum', '2021-07-17 06:18:59', '2021-07-17 06:18:59', NULL, 47, 4, 4),
575 | (77, 'Local Debugging Tools: Debugbar, Telescope, Ray', '2021-07-17 06:35:42', '2021-07-17 06:35:42', NULL, 55, 4, 3),
576 | (78, 'Deployment on Live Servers', '2021-07-17 06:46:04', '2021-07-17 06:46:04', NULL, 75, 4, 2),
577 | (79, 'Git Version Control', '2021-07-17 06:46:19', '2021-07-17 06:46:19', NULL, 75, 4, 1),
578 | (80, 'Payments', '2021-07-18 08:36:15', '2021-07-18 08:36:15', NULL, NULL, 2, 7),
579 | (81, 'Laravel Horizon (optional, if you use Redis)', '2021-07-22 03:02:43', '2021-07-22 03:02:43', NULL, 74, 2, 5),
580 | (82, 'Soft Deletes', '2021-07-22 05:15:24', '2021-07-22 05:15:24', NULL, 20, 4, 6),
581 | (83, 'Working with API Clients: Postman or Alternatives', '2021-07-22 05:37:58', '2021-07-22 05:38:12', NULL, 47, 4, 2),
582 | (84, 'API Error Handling and Status Codes', '2021-07-22 05:42:08', '2021-07-22 05:42:08', NULL, 47, 4, 5),
583 | (85, 'Database/Eloquent Extra Features', '2021-07-23 04:22:27', '2021-07-23 04:22:27', NULL, NULL, 2, 2),
584 | (86, 'Model Observers', '2021-07-23 04:22:49', '2021-07-23 04:22:49', NULL, 85, 2, 1),
585 | (87, 'Raw Database Queries', '2021-07-23 04:24:14', '2021-07-23 04:24:14', NULL, 85, 2, 2),
586 | (88, 'Caching', '2021-07-23 04:25:40', '2021-07-23 05:58:17', NULL, 43, 2, 7),
587 | (89, 'All Eloquent Features', '2021-07-23 04:29:13', '2021-07-23 04:29:13', NULL, 85, 2, 3),
588 | (90, 'Laravel Jetstream (requires Livewire/Inertia knowledge)', '2021-07-23 04:36:14', '2021-07-23 04:36:14', NULL, 31, 2, 1),
589 | (91, 'Laravel Fortify', '2021-07-23 04:37:18', '2021-07-23 04:37:18', NULL, 31, 2, 2),
590 | (92, 'Upload Files via API', '2021-07-23 04:39:54', '2021-07-23 04:39:54', NULL, 48, 2, 1),
591 | (93, 'Generate API Documentation', '2021-07-23 04:42:27', '2021-07-23 04:42:27', NULL, 48, 2, 2),
592 | (94, 'API Versioning', '2021-07-23 04:45:16', '2021-07-23 04:45:16', NULL, 48, 2, 3),
593 | (95, 'Only-API Projects with Front-end like Vue.js', '2021-07-23 04:49:01', '2021-07-23 04:49:01', NULL, 48, 2, 5),
594 | (96, 'Only-API Projects with Mobile Apps', '2021-07-23 04:49:15', '2021-07-23 04:49:15', NULL, 48, 2, 6),
595 | (97, 'Creating Artisan Commands', '2021-07-23 04:58:14', '2021-07-23 04:58:14', NULL, 43, 2, 5),
596 | (98, 'Task Scheduling', '2021-07-23 05:00:05', '2021-07-23 05:00:05', NULL, 43, 2, 6),
597 | (99, 'Login with X: Laravel Socialite', '2021-07-23 05:00:55', '2021-07-23 05:00:55', NULL, 43, 2, 4),
598 | (100, 'Laravel HTTP Client and Guzzle', '2021-07-23 05:01:48', '2021-07-23 05:01:48', NULL, 43, 2, 3),
599 | (101, 'Queueable Classes and Jobs', '2021-07-23 05:11:36', '2021-07-23 05:11:36', NULL, 74, 2, 1),
600 | (102, 'Processing Failed Jobs', '2021-07-23 05:14:31', '2021-07-23 05:14:31', NULL, 74, 2, 3),
601 | (103, 'Job Dispatching, Batching and Chaining', '2021-07-23 05:15:34', '2021-07-23 05:15:34', NULL, 74, 2, 2),
602 | (104, 'Configuring Queues: Drivers, Redis, Supervisor', '2021-07-23 05:16:36', '2021-07-23 05:16:36', NULL, 74, 2, 4),
603 | (105, 'Laravel Cashier with Stripe/Paddle', '2021-07-23 05:53:18', '2021-07-23 05:54:43', NULL, 80, 2, 1),
604 | (106, 'Custom Payment Providers: PayPal, Mollie, etc', '2021-07-23 05:54:59', '2021-07-23 05:54:59', NULL, 80, 2, 2),
605 | (107, 'Automated Testing Advanced', '2021-07-23 05:58:58', '2021-07-23 05:58:58', NULL, NULL, 2, 8),
606 | (108, 'TDD: Test-Driven Development', '2021-07-23 05:59:15', '2021-07-23 05:59:15', NULL, 107, 2, 1),
607 | (109, 'Mocking', '2021-07-23 06:02:03', '2021-07-23 06:02:03', NULL, 107, 2, 2),
608 | (110, '(optional) Laravel Dusk', '2021-07-23 06:02:54', '2021-07-23 06:02:54', NULL, 107, 2, 3),
609 | (111, 'Full-Text Search', '2021-07-23 06:03:44', '2021-07-23 06:03:44', NULL, NULL, 2, 9),
610 | (112, 'Laravel Scout', '2021-07-23 06:03:55', '2021-07-23 06:03:55', NULL, 111, 2, 1),
611 | (113, 'Drivers: ElasticSearch, Algolia or MeiliSearch', '2021-07-23 06:05:11', '2021-07-23 06:05:11', NULL, 111, 2, 2),
612 | (114, 'Laravel Packages', '2021-07-23 06:07:25', '2021-07-23 06:07:25', NULL, NULL, 2, 10),
613 | (115, 'Contributing to Packages, making Pull Requests', '2021-07-23 06:07:37', '2021-07-23 06:07:37', NULL, 114, 2, 1),
614 | (116, 'Create Laravel Packages', '2021-07-23 06:08:27', '2021-07-23 06:08:27', NULL, 114, 2, 2),
615 | (117, 'Real-time: Broadcasting, Echo and Pusher', '2021-07-25 04:43:24', '2021-07-25 04:43:24', NULL, 43, 2, 8),
616 | (118, 'Project Architecture and Structure Decisions', '2021-07-30 14:51:09', '2021-07-30 15:13:20', '2021-07-30 15:13:20', NULL, 3, 0),
617 | (119, 'PHP/Laravel Design Patterns', '2021-07-30 14:51:22', '2021-07-30 15:14:07', NULL, NULL, 3, 0),
618 | (120, 'Well-written Code', '2021-07-30 14:51:50', '2021-07-30 14:51:50', NULL, NULL, 3, 0),
619 | (121, 'SOLID Code', '2021-07-30 14:52:05', '2021-07-30 14:52:05', NULL, 120, 3, 1),
620 | (122, 'Scalable Code', '2021-07-30 14:52:15', '2021-07-30 14:52:42', NULL, 120, 3, 2),
621 | (123, 'Maintainable Code', '2021-07-30 14:52:26', '2021-07-30 14:52:26', NULL, 120, 3, 3),
622 | (124, 'Reusable Code', '2021-07-30 14:52:35', '2021-08-05 08:51:16', '2021-08-05 08:51:16', 120, 3, 4),
623 | (125, 'Best Practices and Standards', '2021-07-30 14:52:53', '2021-07-30 14:52:53', NULL, 120, 3, 5),
624 | (126, 'Large Datasets', '2021-07-30 14:54:46', '2021-07-30 14:54:46', NULL, NULL, 3, 0),
625 | (127, 'Large Database Structures', '2021-07-30 14:55:11', '2021-07-30 14:55:11', NULL, 126, 3, 1),
626 | (128, 'NoSQL Solutions', '2021-07-30 14:55:33', '2021-07-30 14:55:33', NULL, 126, 3, 2),
627 | (129, 'Eloquent/SQL Query Optimization', '2021-07-30 14:55:59', '2021-08-06 05:25:45', NULL, 126, 3, 3),
628 | (130, 'Scaling to Multiple Databases', '2021-07-30 14:56:31', '2021-07-30 14:56:31', NULL, 126, 3, 4),
629 | (131, 'Working with High-Traffic Projects', '2021-07-30 14:57:40', '2021-07-30 14:58:09', NULL, NULL, 3, 0),
630 | (132, 'Stability and Zero-Downtime Deployments', '2021-07-30 14:58:37', '2021-07-30 14:58:47', NULL, 131, 3, 1),
631 | (133, 'Performance Optimization and Caching', '2021-07-30 14:59:06', '2021-07-30 14:59:06', NULL, 131, 3, 2),
632 | (134, 'Ensuring Code Quality', '2021-07-30 14:59:23', '2021-07-30 14:59:52', NULL, NULL, 3, 0),
633 | (135, 'Writing Testable Code', '2021-07-30 15:00:06', '2021-07-30 15:00:06', NULL, 134, 3, 1),
634 | (136, 'Automated Testing: Process Optimization', '2021-07-30 15:00:25', '2021-08-06 05:56:40', '2021-08-06 05:56:40', 134, 3, 2),
635 | (137, 'Continuous Integration and Continuous Delivery (CI/CD)', '2021-07-30 15:01:48', '2021-07-30 15:01:48', NULL, 134, 3, 3),
636 | (138, 'Creational Design Patterns', '2021-07-30 15:17:40', '2021-07-30 15:17:40', NULL, 119, 3, 1),
637 | (139, 'Structural Design Patterns', '2021-07-30 15:18:01', '2021-07-30 15:18:01', NULL, 119, 3, 2),
638 | (140, 'Behavioral Design Patterns', '2021-07-30 15:18:15', '2021-07-30 15:18:15', NULL, 119, 3, 3),
639 | (141, 'API with OAuth and Laravel Passport', '2021-08-08 07:14:27', '2021-08-08 07:14:27', NULL, 48, 2, 4);
640 |
641 |
642 |
643 | /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
644 | /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
645 | /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
646 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
647 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
648 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
649 | /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--------------------------------------------------------------------------------
/videos/all-eloquent-features.md:
--------------------------------------------------------------------------------
1 | ### All Eloquent Features
2 |
3 | - [Laravel Group Data: in Collections or in Eloquent Query?](https://www.youtube.com/watch?v=FhlVOIfjxbA) / April 2021 / 5:22 min
4 | - [Laravel Collections: 5 Methods with Real Examples](https://www.youtube.com/watch?v=isAz2GduuA0) / July 2021 / 10:04 min
5 | - [Laravel Collections or Foreach? Shorter? More Readable?](https://www.youtube.com/watch?v=OTdLZJECIUE) / May 2020 / 5:38 min
6 | - [Check if Collection is Empty: isset(), empty() or !$collection?](https://www.youtube.com/watch?v=vCZ2qsxm8JE) / June 2020 / 3:51 min
7 |
--------------------------------------------------------------------------------
/videos/api-auth-with-sanctum.md:
--------------------------------------------------------------------------------
1 | ###
2 |
3 | - [Example of Laravel Sanctum with API Tokens](https://www.youtube.com/watch?v=Ql5z9TjXWLY) / January 2021 / 5:05 min
4 | - [Laravel API Auth with Sanctum and API Tokens](https://www.youtube.com/watch?v=gyWLxpYWxFQ) / June 2020 / 5:54 min
5 |
--------------------------------------------------------------------------------
/videos/auth-starter-kits.md:
--------------------------------------------------------------------------------
1 | ### Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap)
2 |
3 | - [Laravel Breeze: Login with Email, Name or Phone](https://www.youtube.com/watch?v=jFGsLqqBMQc) / September 2021 / 3:52 min
4 | - [Laravel Users: Set Locations/Teams with Breeze](https://www.youtube.com/watch?v=5T83czFrfEU) / May 2021 / 8:03 min
5 | - [Practical Laravel Breeze: Menu, Routes and Full MVC](https://www.youtube.com/watch?v=r61lkTd4m1U) / March 2021 / 14:12 min
6 | - [Customize Laravel Breeze: Menus, Forms, Components, Tables](https://www.youtube.com/watch?v=XVxyY_owL_M) / February 2021 / 17:18 min
7 | - [Save User Login Time/IP: Laravel Jetstream, Breeze, Fortify, UI](https://www.youtube.com/watch?v=v4IRYiylQPs) / March 2021 / 4:49 min
8 | - [NEW Laravel Breeze: Anti-Jetstream from Taylor Himself](https://www.youtube.com/watch?v=dofUcI1PkUA) / November 2020 / 7:33 min
9 | - [Laravel 8 Auth: 5 "Latest" Things You Need to Know](https://www.youtube.com/watch?v=L1FVdHdEm_8) / October 2020 / 6:07 min
10 |
--------------------------------------------------------------------------------
/videos/authorization-roles-permissions-gates-policies.md:
--------------------------------------------------------------------------------
1 | ###
2 |
3 | - [Laravel Roles and Permissions: All CORE Things You Need To Know](https://www.youtube.com/watch?v=kZOgH3-0Bko) / May 2021 / 16:31 min
4 | - [Laravel: Separate Admin/User Areas - Designs, Routes, Permissions](https://www.youtube.com/watch?v=tafzPLRP92I&t=280s) / June 2020 / 6:38 min
5 | - [Laravel Roles/Permissions: Users in Organizations/Teams](https://www.youtube.com/watch?v=oOLKwPfMIYU) / April 2020 / 8:37 min
6 |
--------------------------------------------------------------------------------
/videos/database-migrations.md:
--------------------------------------------------------------------------------
1 | ### Database Migrations
2 |
3 | - [Laravel Migration: Change Foreign Key to Nullable](https://www.youtube.com/watch?v=QL0gKwGjJ-4) / July 2021 / 6:05 min
4 | - [Laravel 8 Migrations: Generate from Database Schema](https://www.youtube.com/watch?v=eLybI4WPuWc) / April 2021 / 3:05 min
5 | - [Laravel Migrations: 12 Useful Tips in 12 Minutes](https://www.youtube.com/watch?v=bSQcmcu6yHc&t=85s) / February 2021 / 12:05 min
6 | - [Laravel Migrations: Table Created but Foreign Key Failed?](https://www.youtube.com/watch?v=DWzUBpsEEHY) / January 2021 / 5:17 min
7 |
--------------------------------------------------------------------------------
/videos/database-seeders-and-factories.md:
--------------------------------------------------------------------------------
1 | ### Database Seeders and Factories
2 |
3 | - [Laravel 8: Database Seeds with Relationships](https://www.youtube.com/watch?v=nUKfqqCjA2I) / July 2021 / 4:52 min
4 | - [Code Review: Optimize Seeds and Eloquent Queries](https://www.youtube.com/watch?v=pJe1OUDCOmY) / February 2021 / 9:36 min
5 | - [How to Create Admin User in Laravel: Tinker or Seeds?](https://www.youtube.com/watch?v=k9yfGtk1ad4) / January 2021 / 4:49 min
6 | - [Live-coding: Seeds and Factories in Laravel 8 (free lesson from my course)](https://www.youtube.com/watch?v=qeT0pJJ_GOs) / January 2021 / 12:22 min
7 | - [Laravel: How to Seed New Data When Project is Live?](https://www.youtube.com/watch?v=2wZo54IjtKU) / August 2020 / 3:37 min
8 | - [Laravel Factories: Generate and Re-use Fake Records](https://www.youtube.com/watch?v=MHBDUJ51Pqs) / May 2020 / 7:59 min
9 | - [Seeding 50k DB Rows in Laravel: Create, Insert or Chunk?](https://www.youtube.com/watch?v=sAjLREMr-9k) / April 2020 / 3:52 min
10 |
--------------------------------------------------------------------------------
/videos/exceptions.md:
--------------------------------------------------------------------------------
1 | ### Try-Catch and Laravel Exceptions
2 |
3 | - [Laravel Try-Catch and Exceptions: 5 Examples from Framework Itself](https://www.youtube.com/watch?v=82kJ32T7RxM) / May 2021 / 10:31 min
4 | - [Junior Code Review: Try-Catch and DB Transactions](https://www.youtube.com/watch?v=f-eAI1fdOOY) / March 2021 / 8:07 min
5 | - [Exceptions in Laravel: Why/How to Use and Create Your Own](https://www.youtube.com/watch?v=RTTXZVIL6tw) / September 2020 / 12:17 min
6 |
--------------------------------------------------------------------------------
/videos/file-upload-extra-packages.md:
--------------------------------------------------------------------------------
1 | ### Extra Packages: Spatie Medialibrary, Intervention Image, etc
2 |
3 | - [Laravel File Upload with FilePond: Step-by-Step](https://www.youtube.com/watch?v=GRXaCfS1qj0) / March 2021 / 11:58 min
4 | - [Spatie Media Library Pro: Laravel File Uploads with Great UX [REVIEW]](https://www.youtube.com/watch?v=oqW6vlJgXYE) / February 2021 / 8:47 min
5 |
--------------------------------------------------------------------------------
/videos/file-uploads-and-storage-folder-basics.md:
--------------------------------------------------------------------------------
1 | ### File Uploads and Storage Folder Basics
2 |
3 | - [Group Code Review: Laravel Image Upload & Resize](https://www.youtube.com/watch?v=Xh4kYgsYguc&t=5s) / February 2021 / 10:20 min
4 | - [Laravel: How to Upload File During User Registration](https://www.youtube.com/watch?v=xyQT2pnv_4E) / January 2020 / 5:56 min
5 |
--------------------------------------------------------------------------------
/videos/forms-validation-requests.md:
--------------------------------------------------------------------------------
1 | ### Forms, Validation and Form Requests
2 |
3 | - [Laravel Form Request: Store/Update - Same or Separate Class?](https://www.youtube.com/watch?v=YK8GZmuf8_0) / September 2021 / 8:28 min
4 | - [One Reason to ALWAYS use Form Requests for Validation](https://www.youtube.com/watch?v=3P2uNeY9Azs) / August 2021 / 3:52 min
5 | - [New in Laravel 8.55: Route WithTrashed and Rule::when Conditional Validation](https://www.youtube.com/watch?v=kAEMFXLPjS4) / August 2021 / 4:32 min
6 | - [Laravel Checkout: Database Transactions and Validation](https://www.youtube.com/watch?v=LuxFql2CDyg) / July 2021 / 16:23 min
7 | - [New in Laravel 8.52: Unique Validation Without Trashed](https://www.youtube.com/watch?v=kc8Ks3ElGmM) / July 2021 / 4:41 min
8 | - [Laravel Custom Validation Messages: Override the Defaults](https://www.youtube.com/watch?v=LUGlkXi52VY) / July 2021 / 5:12 min
9 | - [How to "Hack" Laravel: 3 Examples of Non-Validated Input](https://www.youtube.com/watch?v=eLTs_MnhzYw) / May 2021 / 12:16 min
10 | - [New in Laravel 8.39: Password Rules with Checking Data Leaks](https://www.youtube.com/watch?v=5q_P7QUssoc) / May 2021 / 5:08 min
11 | - [Laravel Validation: 12 Less-Known Tips in 13 Minutes](https://www.youtube.com/watch?v=ckhllNh79gM) / March 2021 / 13:10 min
12 | - [Make Laravel Validation Messages More "Human"](https://www.youtube.com/watch?v=KJbwEwl2D4o) / March 2021 / 12:02 min
13 | - [Laravel Validation: HTML Link in Error Message?](https://www.youtube.com/watch?v=_k4zwJIUPH0) / November 2020 / 4:01 min
14 | - [Laravel Validation Rules: In FormRequest, Controller or Model?](https://www.youtube.com/watch?v=HihUzmG2h3w) / June 2020 / 6:17 min
15 | - [Danger of Using $request-all(), and How to Protect](https://www.youtube.com/watch?v=QQS5oEOguRU) / March 2020 / 5:21 min
16 | - [New in Laravel 6.13: Format Validation Error Field Name](https://www.youtube.com/watch?v=KD1SqLO58eE) / January 2020 / 3:16 min
17 |
--------------------------------------------------------------------------------
/videos/git-version-control.md:
--------------------------------------------------------------------------------
1 | ### Git Version Control
2 |
3 | - [Git in Laravel. Part 2 - Conflicts and Better Pull Requests](https://www.youtube.com/watch?v=t020co_fROU) / April 2021 / 10:58 min
4 | - [Git in Laravel. Part 1 - Branches: Main, Develop and Feature](https://www.youtube.com/watch?v=AmScEC-_72I) / April 2021 / 9:42 min
5 |
--------------------------------------------------------------------------------
/videos/route-groups.md:
--------------------------------------------------------------------------------
1 | ### Route Groups
2 |
3 | - [Code Review: Route Groups - User/Admin, Controller Names(paces)](https://www.youtube.com/watch?v=AOwCE25bhSU) / February 2021 / 11:19 min
4 | - [Laravel Route Grouping: Simple to Very Complex](https://www.youtube.com/watch?v=I6kyfSmPhn8) / September 2020 / 13:31 min
5 |
--------------------------------------------------------------------------------
/videos/route-model-binding.md:
--------------------------------------------------------------------------------
1 | ### Route Model Binding
2 |
3 | - [Laravel Route Model Binding: All You Need To Know](https://www.youtube.com/watch?v=6dEfxGLgevM) / July 2021 / 6:59 min
4 | - [Laravel Route Model Binding: Default, Custom and Laravel 7](https://www.youtube.com/watch?v=XyyGG5qIWoQ) / February 2020 / 7:18 min
5 |
--------------------------------------------------------------------------------
/videos/route-resource-resourceful-controllers.md:
--------------------------------------------------------------------------------
1 | ### Route Resource and Resourceful Controllers
2 |
3 | - [Junior Code Review: 5 Routes into Resource CRUD Controller](https://www.youtube.com/watch?v=J5WBTUr0QBE) / February 2021 / 12:22 min
4 | - [Laravel Resource Controllers: Most Common Mistake People Make](https://www.youtube.com/watch?v=exIfecOZd2E) / January 2021 / 2:51 min
5 | - [Laravel Nested Resource Controllers: Two-Level Deep](https://www.youtube.com/watch?v=9R_9Xe3Fgnw) / December 2020 / 5:10 min
6 |
--------------------------------------------------------------------------------
/videos/routing-advanced.md:
--------------------------------------------------------------------------------
1 | ### Routing Advanced
2 |
3 | - [Laravel Routes: Grouping and Other "Tricks" - Challenge Result](https://www.youtube.com/watch?v=Q3yPNimibGA) / September 2021 / 7:40 min
4 | - [Laravel: 8 Tips for Advanced Routing](https://www.youtube.com/watch?v=_BIhuX8owTo) / March 2020 / 5:42 min
5 |
--------------------------------------------------------------------------------