
An Introduction to the Course. What you will learn and how the Course is structured.
We cover how Laravel can be installed on your machine. We also install PHP, Mysql, Composer and Laravel Installer which are the pre-requisites before installing Laravel.
We see how Laravel Renders its home Page and how we can create various Routes for our Application and return a Different Response for each of those Routes.
We see how we can pass Data or Variables to View Files and how to display them inside the Blade Files.
We see how different Views can use the same Layout so that common elements like Header & Footer are not repeated across multiple views.
We see how we can use Controllers. We create our first controller using the Artisan CLI.
We cover how we can connect our Laravel Application to a Database and fetch data from it.
We have an Overview of the Project that we are going to build.
We see how we can create Authentication Logic including Login, Logout, Registration, Forgot Password etc. in Laravel. We also get to use composer, npm and artisan in this video.
We see how Database Schema can be modified using Migrations. We create our first Migration and run them.
We create our first Eloquent Model. We also learn what is fillable and guarded property. We define our first Relationship and we also see how to interact using Tinker.
We see how we can protect Route using Middlware. We fetch the Records belonging to Authenticated User. We also see how we can paginate data.
We cover the Read part of our CRUD Application. We also get to know about Route Model Binding and Named Routes.
We change our Controller to Resource Controller and cover all the methods. We also check how to create Routes for Resource Controller.
We cover the Create part of our CRUD Application. We see how Laravel protects us from CSRF Attacks. We implement Validation, Save Data to DB, Redirect and show Flash Success Message.
We cover how we can repopulate our Form in case of error using @old directive and different ways we can display Validation Errors.
We cover the Update Part of our CRUD Application.
We refactor our Code so as to follow DRY (Do not Repeat Yourself) Principle and use same form for both Add and Edit Screens.
We move our Validation Logic outside Controller using Form Request.
We implement some complex Validation Rules and see how to customize the Error Messages for each Failed Validation.
We check the Delete Part of our CRUD Application.
We perform Authorization using Gates as well as Policy. We also see how to use @can directive in Blade Templates.
We check an easy way to use Policies for Resource Controller.
We create our own Factory Class to insert one or multiple records into DB.
We see how Model Factory Class can be used to insert one or multiple records into DB.
We create a Frontend for our Application. We see how to tackle N+1 Problem. We implement Search and we also check Global Scope as well as create our own Resolution Logic for Route Model Binding.
We check Mutators & Accessors functionality in Eloquent Models. We change our URLs to use Slug to make them SEO Friendly and see how to change key for Route Model Binding.
We check various ways of Sending Email in Laravel. We send a Raw Email, HTML Email, Dynamic Email, Email using Markdown Mailables and customize the CSS provided by Laravel. We implement all of them using Mailtrap.
We see how Events & Listeners can be used in Laravel based on Observable Pattern. We also cover Event Subscribers and see when to use them.
We implement Soft Delete for Eloquent Models using just a Trait.
We build Admin Section of our Application. We assign Roles to Users. We implement Admin Namespace. We see how we can prefix all the URLs with admin keyword.
We create our own Middleware to protect our Admin Routes.
We see how Files can be uploaded in Laravel. We see where to upload Files in Laravel and display using symlink We also create Thumbnail using Intervention Library.
We change our HomePage to use specific Bootstrap Design Template.
We see how Many to Many Relationship can be saved using Form. We discuss attach, detach, sync methods. We also see how to use Seeders and run them to populate DB.
We see how 2 Tables joined by hasOne Method can be updated using a single Form.
In this Lesson, we will update our Project from Laravel Version 7 to 8 along with updating all the dependencies.
Laravel 8 has Models Directory where all the Models are present. So in this video we move all our Model Files to this directory from app Folder.
Laravel 8 has Model Factories, which have been completely re-written, and are now Class based. We update our Factories to be compatible with Laravel 8
We will see how we can install & configure Laravel Telescope Package to debug our application.
We check how Local Scope can be used to write effective Code. We also look at Carbon Package.
We check various hooks present in the Eloquet Model Lifecycle. We see how we can refactor our code using the Model Events.
We create our own Console command which accept Argument as well as Option.
We see what are Blade Components and how to use them. We see how we can pass attributes and override default. We also look at the Anonymous Components
We see how to import a Class into Controller using Dependency Injection by binding it into a Service Container.
We see how to create and use a Custom Facade.
We install a new Project using CLI & Laravel Installer
We install Laravel Sanctum Package.
We create the Migration, Model, Factory and setup the Routes & Controller to implement our first API.
We create our first API Endpoint and test using Postman. We also discover that its better to use Resources to send the API Response.
We implement Resource Collection to send the Collection of records as JSON Response
We implement POST, PUT and DELETE API Calls and also test them using Postman.
We implement the Validation using the Request File. We also see how we can send back the Error Response from API Call.
We see how we can make sure that User is Authorized to perform an API Operation and send back the appropriate Error Response in case of failure.
We check various scenarios where we need to send the Error Response and see how we can handle them in a single Class.
We check everything that we have covered so far and also get a glimpse of the next Section where we dive a bit deeper into the implementation of API.
We set up the EndPoints for our Tasks including Models, Routes, Controller, Factories and Migration.
We see how we can validate our API now that we have an additional parameter to validate.
We implement the Authorization and see how it is more challenging than all the Policy implementation that we have done so far.
We create a Resource for our Task Model
We see a few other options that are available in Resource, when to implement them and how they make our code cleaner and easier to implement.
We see how we can include an Accessor Property in our API Resource.
We will see how to Upload Files using the API. We will test the Call using Postman.
We see how we can implement Rate Limiting for our API Calls.
Install Vue3 and implementation inside our Laravel Project
Installing Tailwind CSS inside our SPA and configuring it.
We install Vue Router so that our SPA has unique URL for each component reflected in the browser.
We define the Layout of our SPA using Tailwind CSS
We design our Header & Footer using Tailwind CSS.
We see how we can use Route Links instead of anchor tag so that our Application behaves like a SPA instead of doing a full Page Reload.
We design our Login Page using Tailwind CSS inside our Vue Component
We check how we can submit Form using Vue.
We see how to make API Call on Form Submit
We install Vuex and store User Data into Vuex
Show / Hide Navigation Links based on whether User is Authenticated or not by reading Data from Vuex.
We see how to protect routes based on User Authentication using Guard Routes
Design the Dashboard Page using Tailwind CSS
Update: As Laravel 8 was release on Sep 8th 2020, the Course has been updated accordingly to use the Latest Version. The Course also includes the Section as to how to Update from Laravel 7 to Laravel 8 including using Models Directory & Model Factories.
This is a comprehensive Course which uses the Latest Version of Laravel and is up to date with the current documentation, so that you are not left behind figuring the correct documentation yourself.
You will not only be able to Learn Laravel but the course will also cover how to create REST API using Laravel along with creating a SPA using Vue and Tailwind CSS. We will also learn about Livewire.
The Course is currently divided into 10 Sections. In the first section, we will build a CRUD Application which will help you understand the basics of Laravel. If you are new to Laravel and looking to get started on it, then this Section is for you. Some of the topics that we will cover in the initial section include:
Installation
Routing
Views
Blade Templates
Layouts
Controllers
Database
Eloquent Models
Migration
Middleware
Validation
Form Requests
Authentication
Gates & Policies
Tinker
Artisan CLI
In the 2nd section, we will enhance our CRUD Application. This Section covers topics which involves topics which are just a bit more advanced than basics, but are useful in any Web Application like Sending Email, Uploading File etc. In doing so we will cover following topics:
Factories
Seeders
Customizing Route Model Binding
Mutators & Accessors
File Upload
Events & Listeners
Soft Deletes
Admin Namespacing and Routing
Creating our own Middleware
Eloquent Relationships
In Section 3, we see how we can update our Laravel Project to the latest version using composer.json. We update our Project from Version 7 to Version 8 as well as update all the dependencies. We also cover new Features like Model Factories, Model Directories and other changes that we need to be aware of.
In Section 4, we look at some of the Features which can be considered advanced and learning them would take your knowledge to the next level. If you are working on an enterprise level Project, you are likely to use these features.
Telescope
Carbon Package
Model Events
Console Command
Local Scope
Service Container
Facades
In Section 5, 6 & 7 we see how we can implement REST API. Laravel is used exclusively as backend to create REST API. In this Section, we will cover from scratch all the things that you need to implement REST API. Some of the Topics that we will cover are:
Authentication using Sanctum API
Cover all Types of HTTP Endpoints
Resource & Resource Collection
Test Endpoints using Postman
Advance Resource Options
File Upload using API
Rate Limit
In the Section 8, we will see how to setup a Single Page Application (SPA) using Vue 3 and Tailwind CSS. We will be using the same REST API that we created in our previous section. The Section will only cover Authentication using Sanctum.
In the Section 9, we will learn about Livewire. Livewire has gained extremely popular recently and it allows you to interaction between the Frontend and Backend without using any JS Code. So in this Section we look at the basics of Livewire. Some of the topics that we will cover are:
Installing & Setting Up of Livewire
Livewire Components
Livewire Properties
Computed Properties
Full Page Component
Events
Redirection & Flash Messages
In Section 10, we will build a Project using TALL Stack (Tailwind CSS, Alpine JS, Livewire and Laravel) using Jetstream. We will implement following functionalities:
AJAX Pagination
AJAX Filtering
AJAX Search
AJAX Sorting
AJAX Add using Modal
AJAX Edit using Modal
AJAX Delete using Confirmation Modal
AJAX Validation
Real World Examples are followed while explaining these concepts so that you can easily related to them. LIVE Project is being built so that you can follow the thought process and learn the best practices.