We don't learn tools for the sake of learning tools. Instead, we learn them because they help us accomplish a particular goal. With that in mind, in this series, we'll use the common desire for a blog - with categories, tags, comments, email notifications, and more - as our goal. Laravel will be the tool that helps us get there. Each lesson, geared toward newcomers to Laravel, will provide instructions and techniques that will get you to the finish line. This version of our popular Laravel From Scratch series was recorded in 2021, and uses Laravel 8.
Overview
Syllabus
- Prerequisites and Setup
- An Animated Introduction to MVC
- Initial Environment Setup and Composer
- The Laravel Installer Tool
- Why Do We Use Tools
- The Basics
- How a Route Loads a View
- Include CSS and JavaScript
- Make a Route and Link to it
- Store Blog Posts as HTML Files
- Route Wildcard Constraints
- Use Caching for Expensive Operations
- Use the Filesystem Class to Read a Directory
- Find a Composer Package for Post Metadata
- Collection Sorting and Caching Refresher
- Blade
- Blade: The Absolute Basics
- Blade Layouts Two Ways
- A Few Tweaks and Consideration
- Working With Databases
- Environment Files and Database Connections
- Migrations: The Absolute Basics
- Eloquent and the Active Record Pattern
- Make a Post Model and Migration
- Eloquent Updates and HTML Escaping
- 3 Ways to Mitigate Mass Assignment Vulnerabilities
- Route Model Binding
- Your First Eloquent Relationship
- Show All Posts Associated With a Category
- Clockwork, and the N+1 Problem
- Database Seeding Saves Time
- Turbo Boost With Factories
- View All Posts By An Author
- Eager Load Relationships on an Existing Model
- Integrate the Design
- Convert the HTML and CSS to Blade
- Blade Components and CSS Grids
- Convert the Blog Post Page
- A Small JavaScript Dropdown Detour
- How to Extract a Dropdown Blade Component
- Quick Tweaks and Clean-Up
- Search
- Search (The Messy Way)
- Search (The Cleaner Way)
- Filtering
- Advanced Eloquent Query Constraints
- Extract a Category Dropdown Blade Component
- Author Filtering
- Merge Category and Search Queries
- Fix a Confusing Eloquent Query Bug
- Pagination
- Laughably Simple Pagination
- Forms and Authentication
- Build a Register User Page
- Automatic Password Hashing With Mutators
- Failed Validation and Old Input Data
- Show a Success Flash Message
- Login and Logout
- Build the Log In Page
- Laravel Breeze Quick Peek
- Comments
- Write the Markup for a Post Comment
- Table Consistency and Foreign Key Constraints
- Make the Comments Section Dynamic
- Design the Comment Form
- Activate the Comment Form
- Some Light Chapter Clean Up
- Newsletters and APIs
- Mailchimp API Tinkering
- Make the Newsletter Form Work
- Extract a Newsletter Service
- Toy Chests and Contracts
- Admin Section
- Limit Access to Only Admins
- Create the Publish Post Form
- Validate and Store Post Thumbnails
- Extract Form-Specific Blade Components
- Extend the Admin Layout
- Create a Form to Edit and Delete Posts
- Group and Store Validation Logic
- All About Authorization
- Conclusion
- Goodbye and Next Steps
Taught by
Jeffrey Way