Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Laravel for Beginners
Getting Started
Course Introduction - What Will You Learn? (1:58)
Prerequisites (1:11)
Full Demo of the Project (7:55)
The Importance of the Deployment (4:45)
Private Discord Group
Final Version of Source Code
Getting Started With Laravel
What is Laravel and What are its Benefits (2:26)
Setup Working Environment (4:01)
Create Laravel Project (3:17)
Introduction to artisan (3:15)
Introduction to artisan challenge (1:23)
Explore Directory Structure (4:07)
Create route and render blade file (2:03)
Request Lifecycle (1:48)
Configuration (3:32)
Debugging Functions (1:59)
Quiz
Source Code
Routing
Basics of Routing (2:49)
Route Required Parameters (2:51)
Route Optional Parameters (1:58)
Route Parameter Validation (3:24)
Route Parameter Validation with regex (3:49)
Named Routes (2:40)
Named Routes with Parameters (2:31)
Route Groups (1:32)
Fallback Routes (0:50)
Artisan command to view existing routes (1:40)
Route Caching (0:39)
Quiz
Challenge (1:42)
Source Code
Controllers
Basic Controllers (2:47)
Grouping Routes by Controller (1:27)
Single Action Controllers (3:37)
Resource Controllers (7:11)
Quiz
Challenge (4:02)
Create HomeController for Project (2:49)
Source Code
Views - The Basics
Creating and Rendering Views (3:27)
Using View Facade (2:25)
Passing Data to Views (2:19)
Sharing Data with all Views (1:06)
Quiz
Challenge (3:34)
Source Code
Views - Displaying Data
Output PHP Function Results (1:42)
Display Unescaped Data (1:24)
Blade and JavaScript Frameworks (4:31)
Rendering JSON (2:11)
Quiz
Source Code
Views - Blade Directives
What are Blade Directives (1:09)
Comments (2:24)
Conditionals (3:50)
Switch (0:35)
Loops (1:10)
@continue & @break (1:25)
Loop Variable (5:39)
Classes & styles (3:33)
Including Subviews (3:17)
Conditionally Render Sub Views (1:56)
Subview Inside Loop (3:33)
Raw PHP (1:07)
Quiz
Challenge (3:52)
Source Code
Website Layout with Template Inheritence
HTML & CSS Frontend Template Source Code
Create App Layout (6:13)
Output Language, Application Name and CSRF Token In App Layout (4:40)
Copy HTML Layout from HTML Template (6:12)
Create Clean Layout and Extend in App Layout (8:57)
Create Signup page and extend it from clean layout (6:15)
Challenge - Create Login Page (3:52)
Directives @section, @show, @parent (3:52)
More on Directives (3:28)
Quiz
Source Code
Components
Introduction to Components (5:13)
Component Slots (5:53)
Class Based Components (3:38)
Attributes for Class Based Component (2:59)
Attributes for Anonymous Components (6:19)
Additional Attributes to Components (6:29)
Component Slot Attributes (2:15)
Reserved Keywords (1:01)
Inline Components (1:54)
Layouts Using Components (15:52)
Quiz
Challenge - Refactor Signup Page (1:31)
Challenge - Create Google and Facebook Buttons (3:11)
Challenge - Create GuestLayout (9:57)
Challenge - CarItem Component (3:34)
Source Code
Create Basic Pages
Cleanup Code From Views (2:28)
Create CarController and its Views (10:47)
Update Links to Pages (2:49)
Source Code
Introduction to Databases
Database Configuration (3:59)
Explore Default Database (3:45)
Explore Projects Database Schema (5:02)
Migrations
What Are Migrations (0:52)
Migration File Structure (2:18)
Explore Existing Migrations (2:11)
Migrate Artisan Commands (4:03)
Add Columns to Users Table (1:55)
Create Car Types and Fuel Types Tables (2:59)
Running Migrations (2:16)
Create makers, models, states, cities Tables (4:10)
Create cars and car_features Tables (8:47)
Rollback Migrations (5:40)
Quiz
Challenge - Create car_images and favourite_cars Tables (3:30)
Source Code
Eloquent ORM Basics
What is Eloquent ORM (1:53)
Generate FuelType Model with Artisan (2:23)
Eloquent Model Conventions (7:04)
Generate Remaining Models (2:38)
Route Model Binding (2:41)
Disable Timestamps (1:29)
Insert Records in the Database (9:07)
Select Data - The Basics (9:46)
Insert Data (2:47)
Insert Data Using Fillable (7:49)
Define $fillable on all Models (2:11)
Define $primaryKey on CarFeatures (0:41)
Update Cars - The Basics (1:02)
Update Cars - Create or Update (4:20)
Mass Update (2:25)
Delete Cars - A Single Record (2:19)
Delete Cars - Mass Delete (2:52)
Rename CarImages Model (1:51)
Quiz
Challenge (4:15)
Source Code
Eloquent ORM Relationships
Introduction to ORM Relationships (1:36)
Define One to One Relationships (5:18)
One to One Relational Data - CRUD (6:25)
One to Many Relationships (5:13)
Many to One Relationships (6:52)
Many to Many - Define Relationships (5:49)
Many to Many - Working with Data (7:19)
Quiz
Define Remaining Relationships (6:59)
Source Code
Factories
Introduction to Factories (1:39)
Generating Factories (2:08)
Factory Naming Conversion (2:37)
Use Factories to Generate Data (4:18)
Factory Sequences (2:51)
Factory States (2:17)
Factory Callbacks (1:12)
Factory Relationships - One to Many (7:19)
Factory Relationships - Belongs To (2:54)
Quiz
Define all Factories (14:55)
Factory Relationships - Many to Many (3:21)
Source Code
Data Seeding
Introduction (1:08)
Create and Run Seeders (3:28)
Quiz
Define Seed Data for Our Project (20:20)
Source Code
Output Data on the Website from the Database
Render Cars on Home Page (4:38)
Query Data - Different Methods (4:48)
Render Cars on Search Page (3:17)
Ordering Data (1:53)
Output Content on Car Details Page (17:13)
Output Content on My Cars Page (9:14)
Implement Watchlist Page (9:22)
Eager Loading (6:41)
Eager Loading on Home Page (4:06)
Eager Loading on Other Pages (2:26)
Database Joins (8:55)
Quiz
Source Code
Database - Where Clause
Basic Where Clauses (2:34)
Additional Where Clauses (5:35)
Logical Grouping (1:51)
Where Exists Clause (1:59)
Subquery Where Clauses (2:51)
Query Debugging (1:05)
Quiz
Data Pagination
Pagination Basics (3:46)
Ways to Customize Pagination view (3:30)
Customize the Pagination View (11:13)
Pagination on Watchlist and My Cars Pages (4:49)
Using Simple Pagination (3:13)
Customizing Pagination URLs (3:36)
Quiz
Source Code
Request & Response
Accessing the Request (6:39)
Creating Response (5:58)
Redirects (2:18)
Quiz
Source Code
Searching for Car & Code Refactoring
Separate Components for Maker and Model Selects (7:35)
State, City Dropdown Components (3:43)
CarType and FuelType Dropdown Components (3:42)
Re-use Components on Search Page (2:43)
Access Request Data (5:37)
Implement Car Search (11:19)
Populate Search form with Request Data (10:13)
Show Text When no Cars are Found (1:46)
Implement Sorting Cars (8:54)
Source Code
Create new Car, Features and Images
Implement Form Submission with @csrf Directive (2:10)
What is CSRF and How it Works (1:44)
Disable CSRF Validation (1:50)
Prepare Car Create Form for Submission - Part 1 (14:47)
Prepare Car Create Form for Submission - Part 2 (8:21)
Create New Car (3:16)
Create Car Features (1:56)
Fix Bug When Car Without Image Was Not Rendered (5:36)
Don’t Show Car Details Page for Non Published Car (1:29)
Create Car Images (12:46)
Quiz
Source Code
Data Validation
Introduction to Validation (1:53)
Writing Validation Logic (4:53)
Available Validation Rules (0:52)
Handle Validation Errors (6:01)
Validation with Bags (3:19)
Repopulating Forms (3:36)
Manually Creating Validators (4:34)
Customize Validation Messages (5:24)
Conditional Validation (4:35)
Validating Arrays (6:05)
Validating Files (3:55)
Custom Validation Rules (4:32)
Project - Implement All Validation Rules (15:23)
Quiz
Source Code
Form Request Validation
Form Request Validation (2:57)
Customize Validation Messages and Attributes (5:59)
Customize Form Request Class (3:53)
Working with Validated Input (1:30)
Display Error Messages for Images (2:20)
Quiz
Source Code
Finish Car CRUD
Render Car Update Form (15:29)
Update Car Details (5:34)
Delete Car (3:25)
Display Car Images (9:56)
Deleting Images, Change Image Positions (9:11)
Show Add More Images Form (4:31)
Add More Images to Car (4:49)
Source Code
Sessions
Introduction to Sessions (2:34)
Working with Session Data (7:01)
Session Flash Data (7:27)
Quiz
Source Code
Authentication
Signup (10:28)
Validating Passwords (2:49)
Implement Login (9:48)
Logout (2:29)
Password Reset - Part 1 (19:48)
Password Reset - Part 2 (16:05)
Use Authenticated User ID (10:45)
Source Code
Middlewares
Introduction to Middlewares (1:09)
Create Basic Middleware (4:58)
Grouping Routes by Middleware (8:41)
Excluding Middlewares (2:54)
Explore Core Middlewares (3:29)
Middleware Aliases (0:50)
Controller Middlewares (2:53)
Email Verification (19:35)
Quiz
Source Code
Google and Facebook Authentication
Implement Controllers and Routes (13:36)
Signup with Google (8:58)
Signup with Facebook (3:38)
Souce Code
Watchlist & Profile Update
Create Profile Page (11:04)
Profile Update (9:29)
Password Update (4:57)
Create auth Routes File (4:41)
Add & Remove Cars from Watchlist (10:21)
Display Which Cars are Added into Watchlist (4:06)
Source Code
Asset Bundling
Introduction to Vite (5:13)
Building Assets (2:47)
Inline Assets (1:09)
Add to Watchlist Using JavaScript (8:56)
Source Code
Authorization - Gates and Policies
Introduction to Authorization (0:46)
Introduction to Gates (7:40)
Advanced Gate Features (3:28)
Introduction to Policies (3:56)
Methods Without Models (3:32)
Guest Users in Policies (1:30)
Authorize Actions Using Polices (3:41)
Policy Filters (2:49)
Challenge - Add Authorization Logic to All Methods (3:10)
Quiz
Source Code
Project Improvements
Fix Creating Car Bug (4:10)
Fix Bug of Adding Car Into Watchlist (10:23)
Read Full Phone Number (8:59)
Redirect User to Profile Page if Phone is null (5:16)
Show "There are no cars" text on Home Page (1:52)
Fix Error on Car Details Page if User is Guest (1:11)
Update Composer Packages (2:11)
Fix URL for “Manage your images From Here” (1:00)
Change Home Page Slider Button Actions (2:21)
Source Code
Fix Bug When We Add Car into Watchlist as Guest (3:29)
Helpers
Array Helper Functions (3:23)
Introduction to Helpers (1:45)
Number Helper Functions (3:18)
Objects, Paths Helper functions (4:23)
URL and Misc Helper functions (4:34)
String Helpers (5:10)
Laravel Debug Bar
Installation of Debug Bar (1:41)
Explore Debug Bar Interface (4:45)
Detect Lazy Loading Problems with Debug Bar (4:05)
Explore Other Features with Debug Bar (1:33)
Source Code
Caching
Introduction to Caching (3:07)
Store Cache Data (6:37)
Retrieving info From Cache (7:40)
Delete Data From Cache (1:43)
Using Cache Helper Function (1:21)
Caching for Dropdown Data (4:33)
Implement Caching on Home Page (3:53)
Source Code
Testing
Introduction to Testing (1:11)
Explore and Run Existing Tests (2:14)
New Tests for Auth Pages (4:20)
Database Configuration (6:02)
Test Unauthorized Access on Car Create Page (2:42)
Challenge - Test Unauthorized Access on Profile Page (2:24)
Http Test Response Assertions (3:00)
Debugging Responses (2:26)
Shorter Syntax of Writing Tests (3:25)
Acting as Authenticated User (4:13)
Challenge (8:26)
Home Page Tests (6:37)
Test Login Page Opens and Content is Visible (6:05)
Test Login Functionality (7:42)
Test Signup Page (13:15)
Test Password Reset (6:35)
Test Creating New Car (11:35)
Test Creating New Car With Images (3:52)
Test Data Validity & Create Car Features (6:41)
Test Rendering Car Update Page (24:24)
Test Update Car Details (6:01)
Test Delete Car (4:08)
Test Adding Images to Car (9:30)
Test Deleting Car Images (6:01)
Test Update Image Positions (8:15)
Test Navbar Items (7:25)
Test User Access Somebody Else's Car (6:50)
Source Code
Hosting
Setup VPS Server (11:18)
Access to Server using SSH (3:31)
Generate Public/Private Keys and Put on Github (3:28)
Clone the Project Using Git & Setup (9:53)
Create MySQL Database and Adjust .env (3:19)
Buy and Assign Custom Domain (7:50)
Implement Signup with Google on Production (6:34)
CI/CD with Github Actions (19:00)
Test CI/CD Pipelines on Failed Tests (3:10)
Final Version of Source Code
Teach online with
Many to Many - Working with Data
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock