Laravel has become the go-to framework for PHP developers, known for its elegance, performance, and powerful toolset. As PHP continues to evolve, Laravel is at the forefront, making web development more accessible and enjoyable than ever.
In this course, I'll guide you through everything you need to know about Laravel - from setup to advanced features. We'll build 5 real-world projects that will solidify your understanding and prepare you for professional Laravel development.
What You'll Learn:
Laravel has become the go-to framework for PHP developers, known for its elegance, performance, and powerful toolset. As PHP continues to evolve, Laravel is at the forefront, making web development more accessible and enjoyable than ever.
In this course, I'll guide you through everything you need to know about Laravel - from setup to advanced features. We'll build 5 real-world projects that will solidify your understanding and prepare you for professional Laravel development.
What You'll Learn:
Task List Application
Basic routing and controllers
Blade templating
Database interactions with Eloquent ORM
CRUD operations
Form validation
Session handling
Book Reviews System
Relationships in Eloquent (One-to-Many)
Advanced querying techniques
Caching for performance optimization
Custom Blade components
Rate limiting
Events Management API
RESTful API development
API resources for response formatting
Authentication with Laravel Sanctum
Authorization using Gates and Policies
Task scheduling and queues
Notifications and email sending
Livewire Poll Application
Real-time applications with Livewire
Component-based architecture
State management in Livewire
Event handling between components
Job Board Portal
Advanced filtering and search functionality
File uploads and management
Soft deletes
Middleware for access control
Integration with Tailwind CSS and Alpine.js
PHP Language
Don't know PHP yet? No worries.
Learn the basics, control structures, functions, data types
Object-Oriented Programming including classes, interfaces, traits, polymorphism and more
Key Skills You'll Develop:
Laravel framework fundamentals and best practices
Database design and management with MySQL/SQLite
MVC architecture implementation
Authentication and authorization
API development and consumption
Front-end integration (Tailwind CSS, Alpine.js)
Performance optimization techniques
Whether you're new to Laravel or looking to deepen your expertise, this course offers a practical, hands-on approach to mastering one of the most powerful PHP frameworks available. By the end, you'll have the skills and confidence to build robust, scalable web applications with Laravel.
Let's see what are we gonna build and learn inside this section!
Routing guides user requests towards particular actions. You'll discover how to provide a response for any URL within your application.
Let's learn the basics of Blade templates.
Learn Blade directives like @if, @foreach, @forelse to render HTML conditionally and to work with lists.
Let's cleanup the code a little, implement the route that will fetch one task, implement the template and then create the layout template and learn about Blade template inheritance
Let's learn the easiest (yes!) way to run MySQL on any computer!
Let's understand how to connect to the database, how to test if the connections is working and let's understand how it's configured and what are the environment variables.
Understand the database abstraction in Laravel and how database schema changes are done using migrations.
Learn how to generate big sets of fake data and load it into the database
Let's talk about Eloquent Models - how to read data, learn the basics of query builder, and play around with a tool called Tinker.
Learn about view routes, rendering a form and CSRF attack and how to protect against it.
Learn how to validate the user input and then save it into the database.
Learn a little about sessions in Laravel/PHP, showing validation error messages & one-time flash messages.
Learn how to edit the data already in the database. Learn about method spoofing.
A quick video on how to keep the sent values in the form if the form submission fails, so the user does not have to retype everything from scratch (only the invalid values).
Learn how to use the power of Laravel to write less verbose code. Route model binding automatically loads models, mass assignment easily associates submitted data with models and form requests can be a common place for validation rules.
See how to delete records from the database, and how to do that properly and safely on the Blade side!
Learn how you can use the @include directive to create subviews, reusable Blade code chunks using forms as an example.
Learn how easy it is in Laravel to divide results into pages.
Let's add the missing links and then implement the Task completed/not completed toggling feature.
Learn how to set up Tailwind CSS super quickly using Play CDN. Learn what Tailwind is and add some initial styling. Learn how to add CSS classes conditionally.
Let's style the task page. Learn about the Tailwind @apply directive.
Style all the forms.
Style the flash message and learn how to use Alpine.js to make your page dynamic. Alpine.js is super simple and tiny. It's much easier to use than plain JavaScript with DOM.
Let's see the books review project we'll build next!
Create and set up the project, migrations and models.
Define the relationship between 2 models (tables) in both Database and in Laravel. Understand the Laravel conventions about making DB relations.
Learn how to generate more diverse data and how to generate and connect related models.
Learn all the ways to query related data - eager loading and lazy loading. See how to connect models together.
How to extend the query builder with your own methods, that encapsulate some query constraints.
Want to know how many reviews a book has, or what is the average rating? See how!
Create query scopes to sort books by amount of reviews and by the average rating!
I've got a lot of questions under the next video titled "Getting Books with Recent Reviews", so I wanted to clarify what this is video is about!
Learn how to use whereHas to query models based on their relationship.
It's time to learn what a controller is, and then immediately, why you should almost always try to use a resource controller!
Fetching books, adding layout and books template. A lot of code so it takes time!
Let's add the form that filters books by the title!
Let's make a tab to select if you want to see recent books, the highest rated or popular books. This is not as simple as it sounds!
Let's learn how to use the new match expression in PHP. Depending on the value of filter, we will run a specific query scope to filter books.
How to load relations for an already loaded model? When to use lazy loading or eager loading? How to sort the related model by any column? Let's see!
Learn what cache is, how to configure it, when to use it and what to watch out for using query cache as an example.
Cache stays valid for specified amount of time, sometimes though, you want it to invalidate faster, eg. when data changes. Learn how to do that!
We need to refactor the code so it's easy to get the review count and avg rating on any page, without side effects (like sorting by any of those)!
Learn the basics of components in Blade, and create our first one right away - a star rating component!
Let's learn about scoped resource controller, and then make a form for adding reviews!
Learn about rate limiting and how it can be applied through middleware.
We'll build a REST API this time!
Let's create and setup the new REST API project, incl. controllers, models etc.
We need a lot of data to work with, so let's seed the database.
Learn the basics of using Postman, the free and popular REST client that we'll use to manually test and interact with the API we are building.
See how to store data through API, how to validate it and learn a thing or two about HTTP.
Learn how to update and delete data through the API.
How to have full control over what data is being returned from API? Learn about API Resources.
Let's implement the attendee API controller and learn how to use pagination when returning JSON.
Learn how to control what data (relation) is being loaded by using a query parameter.
Let's make a universal trait that lets you load relations of any model or query in every controller by using PHP Traits.
Let's see how to load the Attendee relations.
Let's learn the basics of setting up user authentication, including password hashing, generating tokens using Laravel Sanctum.
Some routes are only for the logged-in users, see how to enforce that.
Copying and pasting the token while in Postman is a lot of work, see how we can automate that!
Let's see how to revoke user tokens and how to sign out.
Let's see how to make simple checks if the user is permitted to do an action on resource using Gates.
Policies allow authorization centered around a resource, let's learn about them.
See more ways on how to authorize with Policy classes, other than using authorizeResource.
Let's build an email reminder about the upcoming events feature, in this video you'll learn about custom artisan commands.
Learn how to schedule tasks to be run later.
How to use Notifications feature to notify users about events by sending an email.
Deferring time consuming tasks to be run in the background, making the UI more snappy.
The API needs throttling to protect your API from excessive usage and potential abuse.
Let's make a dynamic website without the use of JavaScript, by using a technology called Livewire!
Create the Laravel project, set up Livewire.
We need database models & migrations to get started, let's implement all that in this video.
Let's see how can you make a dynamic page without JavaScript by building your first Livewire component.
You will understand how Livewire even works.
How to perform dynamic operations in Livewire.
Let's make a dynamic poll options form.
Learn how to interact with Eloquent from a Livewire component.
See how to write code in a more Laravel fashion, using fluent interfaces.
See how to validate data before you save it.
See how to fetch and pass data to Livewire component.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.