Lets understand controller with an example. To create an boilerplate code for an controller we have to pass following command in root of the project directory.

php artisan make:controller UsersController

The above command will create UsersController.php file under app/Http/Controllers/ directory with the required boilerplate.

Now we will delete the users route and replace this with following code:

By saving the file and running laravel development server, we will see the same output. This time logic are placed inside controller file. This not only make code readable, but very easy to understand. Consider scenario where there are lot of users related function such as create, delete etc. All logic will be placed inside this controller file under different function/method. And we will call required function in the routes file. Example is given below.

An application is incomplete if it is not dynamic. Although some people may prefer to use Laravel for fetching static files, but in my opinion fetching static files would be real wastage of resources, be it space or server memory.

So to make dynamic application, we have to pass variables, arguments or objects to the files. Let see in this tutorial how to pass them in Laravel.

To understand this, we will create a new route called users in our routes file and call the users blade template. We will pass JSON objects to the blade template file and try to retrieve it.

Open routes/web.php file and add the following code.

In above example we have created a json object and assigned it to variable called users. In view method, we have passed that variable using compact() function, the compact() function create array from users variable and pass the array as same name.

Now we will create a blade template files at resources/views/users.blade.php with following lines