Modern Web Development with Laravel 5.2 (PHP Framework)
4.5 (559 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2,266 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Modern Web Development with Laravel 5.2 (PHP Framework) to your Wishlist.

Add to Wishlist

Modern Web Development with Laravel 5.2 (PHP Framework)

Prepare yourself for a career as web developer - Build two major projects in this course
4.5 (559 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2,266 students enrolled
Last updated 4/2016
Curiosity Sale
Current price: $10 Original price: $120 Discount: 92% off
30-Day Money-Back Guarantee
  • 12 hours on-demand video
  • 1 Article
  • 12 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Develop modern, scalable, secure and feature-rich web applications and websites
  • Finish web development projects within much shorter timespans than before
  • Accomplish design and development goals with little effort
  • Provide impressive user experiences and high levels of security within their web applications
View Curriculum
  • You should be familiar with the basics of HTML and CSS as well as PHP
  • No development environment is required, we will set it up in this course

This course uses Laravel 5.2. You learned the basics but still feel like something's missing? You want to get your development skills to the next level?

Already got the basics about PHP, HTML and CSS? Still struggling to start off your career? Or maybe you're interested in broadening your skills and want to be a more confident web developer? Whatever your reasons are, this course will take your web development skills to the next level!

While knowing all the basics is absolutely necessary it also isn't enough. 8 years ago you might've been a good web developer, just coding single PHP files and spaghetti-coding them together. Nowadays that will not suffice.

Become more efficient, enjoy the fun parts!

Today's websites need to be easily scalable, offer a nice user experience, be responsive, fast, error-tolerant and obviously safe. Taking care of all this on your own will at least cost you immense amounts of time. In the worst case it will result in slow or insecure web applications - no one wants that!

Modern PHP development absolutely required you to be familiar with at least one of the major PHP frameworks out there. Being a confident developer in such a framework will instantly boost your productivity! I'm able to setup customized CMS-Applications within hours. That leaves much more time for important things like getting your business logic right and optimizing the user experience!

"Laravel: A Framework for Web Artisans"

In this course I'll teach you the most modern major PHP framework existing: Laravel. It is immensely popular due to the huge volume of functionalities it offers whilst ensuring highest security and ease of use. With Laravel creating web applications is extremely efficient and fun.

This course will teach you everything you need to know to get started with Laravel and develop awesome applications. I guarantee, that you'll be able to create much more complex applications and websites after taking this course and learning Laravel.

Build two major projects in this course

Guaranteeing something is one thing - showing it, however, is the real deal.

Throughout this course we will build, alongside a lot of smaller examples, two major applications which could be real client projects! Our Quotes Website as well as our fully functional Blog (with both Frontend as well as Backend = Administration area) will showcase and use all the Laravel tools we'll cover in this course:

  • MVC approach: Lean application for easy scaling and maintenance
  • User authentication
  • Routing for GET and POST request
  • Protection of routes against unauthorized access
  • Structured database operations with Laravel's built-in ORM for highest security and comfort
    • INSERT, DELETE, UPDATE, SELECT without any SQL-skills
    • Relationships
    • Setting up and structuring a database via PHP files
  • View Templating with Blade Template Engine
  • Automatic mailing with and without callback links
  • Events and Listeners
  • AJAX requests
  • ... and much more!

I also include bonus sections which offer useful refreshers regarding CSS and JavaScript!

Don't hesitate, jumpstart your career and take the next step!

Who is the target audience?
  • This course is meant for students already familiar with the basics of PHP and HTML who want to take their development skills a step further
  • No advanced web development skills are required
  • This course suits you well when you've already taken one of the many basic courses here on Udemy or if you're a self-taught newcomer
Students Who Viewed This Course Also Viewed
Curriculum For This Course
71 Lectures
Course Introduction
5 Lectures 21:51

Let me introduce myself: My name is Maximilian and I will be your instructor throughout this course. I'm confident that we'll communicate on the same level as I'm a self-taught professional web developer. I was able to successfully switch to that career path because of energetic research for high-quality learning materials.

More than once I spent days figuring out a certain topic because of incomplete resources. I therefore know what to emphasize and what the essentials are. Let's take this route together, because you should be able to achieve anything you want!

Preview 03:44

Besides a lot of smaller examples, we will build two major projects.

Quotes application

We'll create an app which allows us to create and delete quotes, to see quotes of other people and to filter for individual quote authors. Additionally we'll extend that example with mail support, sending mails automatically and providing callback links within those mails.

Full Blog

This blog will be huge. We won't stop at the frontend, we will build the administration area as well! Creating, editing, deleting and viewing blog posts will be a breeze - as will attaching and detaching categories. Users will be able to contact us via a contact form, with notification mails being sent to them and us. And that's only a part of all the awesome things we'll learn throughout that final project!

Preview 03:23

Learn about the recommended prerequisites for this course. Fulfilling those requisites will enable you to fully benefit from all the knowledge provided throughout this tutorial.

You should be familiar with the very basics of HTML and CSS. Additionally it's important that you already have a basic understanding of PHP.

Preview 01:53

In this video we will setup the development environment required for this course step-by-step. In order to make this process as easy as possible, we'll use Cloud 9 (a cloud IDE and Workspace) to avoid the need for any adjustments on your local machine.

Setting up the development environment

We're finally there! In this video we will create our very first, basic Laravel application. This will already allow you to see how Laravel works and learn more about the Laravel folder structure.

The very first Laravel Application!
Introduction to Laravel
2 Lectures 09:34

Laravel is a PHP Framework. While you're probably familiar with PHP, you might not know what such a framework does and why we should use one.

This video will get you there and explain how Laravel relates to PHP and why we should use it.

Laravel & PHP

Laravel is a MVC framework. In case that doesn't tell you anything: I got you covered! In this video you'll learn what MVC means and how Laravel works as a MVC framework.

Laravel, a MVC Framework - What is MVC? Why Laravel?
Views, Controllers & Routing
6 Lectures 55:38

Our web application presents something to the user - so called "Views".

Learn what views are, how to create them and how to use the blade templating engine.

Introduction to Views in Laravel

The Blade Templating Engine enables you to create your HTML-Files from several templates and to dynamically add content. It immensely reduces the amount of code duplication and speeds up the entire development process.

The built-in Blade Templating Engine

We want show the user different pages of our application, depending on the URL entered or which link was clicked. Therefore we need a router which handles those requests and shows the user the correct page.

In this video you will learn more about the Laravel router and how to use it for GET-Requests.

Preview 09:50

We want show the user different pages of our application, depending on the URL entered or which link was clicked. Therefore we need a router which handles those requests and shows the user the correct page.

While you already had a look at GET-Requests in the previous video, this video will now consider POST-Requests and how to handle them correctly.

Routing: POST Requests

Learn about additional benefits the Laravel router offers to you. With route grouping, routing get's even more easier and efficient.

Grouping Routes together

Presenting the views is one thing, but most of the time some business logic will have to be processed prior to the presentation of a view.

In a MVC framework of Laravel, this is the job of the controller. A controller is the middleman between the view and the model. Learn how to use Controllers in this video.

Content Management in Laravel (Models, Database Access, Relationships, Querying)
13 Lectures 01:36:59

After learning about Views and Controllers, only the M of MVC is missing: Models. Learn how to create models in Laravel and how to use them.

Laravel makes connecting models with the database real easy - learn more about it in this video.

Introduction to Laravel Models and Database Access

When handling user input, a lot of possible problems await you. Thankfully, user input validation is made real easy in Laravel and this video will show you, how to take advantage of it.

Validating User Input (Forms)

Learn how to use the Laravel CLI (command-line-interface) to create models and database table configurations in a breeze. No SQL-skills will be required to customize database tables the way you need them and setup a connection between your application and your database!

Models and Migrations (Creating Data Structures in a Database)

Especially for testing, we often need dummy data in a database. But sometimes we also need such data in real-world applications.

Laravel offers us the helpful "seeding"-tool, which allows us to create exactly such data. Learn how to use it in this video.

Seeding Data

You can access database data through your Laravel model. But how do you then get that data to show up on the user's screen?

You'll learn that, in this video.

Getting Data from Models to Views

Fetching data is only a part of most applications. More often than not, you'll have to store data, too.

This video will teach you how to easily do that with Laravel.

Inserting Data

SQL-based databases have one especially important characteristic: The tables inside the database can be related to each other. We can depict those relations in our Laravel application. This enables us to use those relations intuitively inside our web application.

Learn how to setup those relations - again: Absolutely no SQL skills are required!


Second part of the relations tutorial.

Relationships II

As said previously: You don't need any SQL skills to be able to access your data in your database. But you do you do it then?

With the Laravel Query Builder - a very intuitive and easy way of accessing data.

Using the Laravel Query Builder to access Data

Learn how to write Laravel queries to select and filter data from your database.

Without SQL.

Preview 08:26

After having seen how to fetch data, now is the time to learn how you can use the Laravel Query Builder to easily manipulate (insert, update, delete) data in your database.

Manipulating Data

Often times you'll have fetched more data (e.g. blog posts) than you want to display on a single page. That's where pagination comes into play - and Laravel has a convenient paginator built-in.

In this video you'll learn how to use it, in order to provide the user with a pleasent pagination experience.

Outputting Data over several Pages (Pagination)

Modern web applications use AJAX requests to load new data or manipulate data without refreshing the view.

In this video you'll learn how to handle AJAX requests in Laravel.

AJAX Requests
Major Project 1: Quotes App
11 Lectures 01:22:03

This video will provide you with an overview over the project, our goals and what we're gonna build.

We will build a quotation app, where users are able to post and delete quotes, filter for quotes by specific authors and browse through all created quotes.

Preview 04:48

We'll first begin with cleaning up our project folder. This video will show you, how to quickly get there and how to clean up correctly when using Laravel.

Preparing the Workspace

The first step of our project is to setup all the required models and migrations (creation of database tables).

This video will show you how to do this and what we will need.

Needed Models and Migrations

To be able to see something we will create our main view (currently filled with some dummy data) in this video.

Preview 10:41

Although this course is not about CSS and HTML, this little bonus video will guide you through the creation of the (attached) stylingsheet used throughout this project.

Bonus: Styling the Project

Displaying dummy data isn't that interesting, therefore this video will show you how to implement the logic required to let users create quotes.

Create Quote

To be able to see some changes in our view, we'll continue with the logic for outputting quotes in this video.

Output Quote

When a user leaves out some information, we don't want to create a new quote. We should also tell the user what went wrong.

Therefore we'll implement input validation in this video.

Validation & Messages

Currently quotes can't be deleted. This will change in this video, where we'll add all required methods and code to be able to do so.

Deleting Quotes

When the user clicks on the name of an author, we want to only display quotes by that author.

Learn how to add such a feature in this video.

Filtering Quotes

Finally we got one missing piece: We only want to display a certain amount of quotes per page. In order to do that, we'll add pagination to our application in this video.

Events, Listeners & Sending Mails
6 Lectures 37:15

Learn what event-driven applications are and why we use events and listeners.

Event-driven Applications

Learn what events and listeners are in Laravel and how the framework makes it really easy for us to create events as well as listeners and hook them up to each other.

Events & Listeners

We'll expand our previous project by some extra functionality: We want users to be able to provide an E-Mail address upon creating quotes. We'll then send them a mail.

In this video will take care about getting and storing their mail address.

Learn how to create an email input field, validate the input and store the email address in the database.

Addition to Project 1: Fetching the mail address

For testing purposes we don't want to send out emails to the real recipients. Instead we need a service which allows us to check all mails, which would be sent in theory. We'll use for that - a service which does exactly this.

Setup - a service which handles all outgoing mail to provide you with testing abilities.

Testing mail dispatch with Mailtrap

Sending mails is a breeze with Laravel.

Lean how to create a views used for an email, how to attach data, how to configure your mail and - finally - how to send it.

Sending Mails

A common feature in web applications is a "callback link" inside an email. A link which the recipient can click to trigger some action.

Learn how to add such a callback link to a mail and handle the resulting user action in this video.

Adding Callback Links to Mails
Protection and Security
5 Lectures 41:37

Laravel makes authentication real easy. All we need for it to work, is a model for our User.

Learn how to setup such an user model correctly in Laravel.

Creating a User Model

Learn how to use Laravel's built-in Authentication Helpers to quickly and safely authenticate users.


Some areas of your application probably won't be accessible by every user. Thankfully, Laravel makes it easy to check if an user is logged in.

Learn how to do that in this video.

Checking for authentication

Implementing the logic to check if a user is logged in can be tedious if multiple routes/ controller actions should be protected. Laravel therefore offers as "middleware" - logic which will be executed during every request (for the routes it's attached to).

Learn more about Laravel middleware, how to configure it and how to use it to protect your routes.

Implement Middleware (Filters) to protect Routes

Even with middleware, protecting individual routes can be tedious. Therefore we'll have a look at grouping routes by middleware in this video.

Grouping multiple Routes by Middleware
Final Project: Build a Complete Blog (Frontend + Backend)
21 Lectures 06:06:09

Overview over what we'll build in our final project.

We'll create a complete Blog application. Complete means, that we'll not only create the frontend, but also the backend, the administration area. The administrator will be able to create, edit and delete blog posts. He'll also be able to create, edit and delete categories and attach them to blog posts. Finally he'll also be in the position to view contact messages.

The visitor of the blog is able to read all the posts and send contact messages (real mail sent).

Preview 03:58

As with our last project, we'll first need to do some project cleanup.

See how to correctly do that in this video.

Preparing the Workspace

We'll start with the frontend views - what visitors of our page will see. At the moment only dummy data is displayed - that'll change soon though.

Learn how to structure the frontend views in this video.

Frontend views

At the moment our frontend views look pretty ugly. In this video I'll go through the (attached) styling sheets required to present our frontend views in a more pleasent way.

Frontend Styling (CSS)

With our posts, categories, messages we got a lot of models and relations to setup.

Learn how to do that, what we'll need and how to wire our models up in this video.

Models & Migrations

At the moment we have no chance of creating any content. In order to get there, we'll now start with the creation of our backend - the administration area.

Learn how to create a nice dashboard view in this video.

Backend - Admin Dashboard View

As with the frontend, the backend looks pretty ugly right now. We'll change this with some styling.

Again, this video will guide you through the attached CSS files.

Backend - Styling

Finally we'll get closer to creating actual content. In this video we'll setup a "New Post" view and the functionality required to write the resulting data to the database.

After this video, we'll have actual posts - created by the administrator - in the database.

Backend - Create Post Functionality

With the posts in the database, we'll create or update all the views involved in the post presentation.

After this video we're finally able to see our posts!

List of Posts Views (Frontend & Backend)

We can see our posts now, but currently there's no way of editing or deleting them.

Well, after this video you'll now how to do both things.

Backend - Delete and Edit Posts

Time to get our categories involved. As we'll handle all the category related actions via AJAX requests, we only need one view: A list of all our categories.

That view will be create in this video.

Backend - List of Categories View

You probably already noticed - our navigation isn't updated when we change the page.

Learn how to attach conditional css-classes to views in this video.

Backend - Fixing the Navigation

In this lecture we'll add all the functionality (JavaScript, Controller) required to be able to create new categories.

The created .js file is also attached to this lecture.

Backend - New Category

Creating categories is the first step - being able to edit them is the second. We'll also add a nice visual effect.

Learn how to write the needed JavaScript and PHP code in this video.

Backend - Edit Categories (incl. JavaScript)

Implement the complete logic to delete categories. This includes the Laravel Controller as well as some JavaScript.

Backend - Delete Categories (incl. JavaScript)

At the moment we have to possibility of wiring up our posts to our categories. We'll add that functionality in this video, also by using JavaScript (file is attached).

Categories & Posts - Attaching/ Detaching (JavaScript)

After adding the JavaScript code to (currently only visually) attach and detach categories to posts, we'll now follow up with the PHP code in our controller. After this video attaching and detaching categories does have a database impact.

Categories & Posts - Attaching/ Detaching (Laravel/ Controllers)

Our visitors should be able to send us mails through the provided contact form. We'll follow an event-driven approach and implement all the required events, listeners and send-mail functionality in this video.

Contact Messages - Events & Send Mail

In the administration area we want to be able to see all the received messages, we also want to be able to delete them.

In this video we will start with the creation of the views required for those actions.

Contact Messages - Views

Viewing and deletion of messages will be done in one single view and via AJAX. In this video all the JavaScript code required to show a modal (popup) with the message content as well as for the deletion of messages will be created.

Contact Messages - View & Delete Messages (incl. JavaScript)

Finally, we want to protect our administration area against unauthorized access.

The concept of middleware will be used in order to setup such a protection.

Login, Logout and Middleware (Route Protection)
2 Lectures 01:19

We covered a lot throughout this course and I hope you enjoyed it as much as I did!

I'll share some final thoughts in this roundup video.


Complete Code
About the Instructor
Maximilian Schwarzmüller
4.7 Average rating
43,452 Reviews
132,965 Students
15 Courses
Professional Web Developer and Instructor

Experience as Web Developer

Starting out at the age of 13 I never stopped learning new programming skills and languages. Early I started creating websites for friends and just for fun as well. This passion has since lasted and lead to my decision of working as a freelance web developer and consultant. The success and fun I have in this job is immense and really keeps that passion burningly alive.

Starting web development on the backend (PHP with Laravel, NodeJS) I also became more and more of a frontend developer using modern frameworks like Angular or VueJS 2 in a lot of projects. I love both worlds nowadays!

As a self-taught developer I had the chance to broaden my horizon by studying Business Administration where I hold a Master's degree. That enabled me to work in a major strategy consultancy as well as a bank. While learning, that I enjoy development more than these fields, the time in this sector greatly improved my overall experience and skills.

Experience as Instructor

As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enables me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 100.000 students on Udemy as well as a successful YouTube channel is the best proof for that.

Whether working as development instructor or teaching Business Administration I always received great feedback. The most rewarding experience is to see how people find new, better jobs, build awesome web applications, acquire amazing projects or simply enjoy their hobby with the help of my content.