Getting Started - Passing arguments to view in Laravel 5.3

By January 23, 2017Laravel

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

You can refer to our tutorial on for loop to understand how loops works in blade template.

Save all the files and you will see the passed arguments successfully.

You can return multiple arrays to the view. to do that just seperate them in compact function using "," comma.

For example

return view('users', compact('users', 'variable1', 'variable2'));

Now there is always multiple way to program an application. Some users may feel not using compact function. the can follow following to get the work done:

return view('users')->with('users', $users);

In above example an array with name users is created that will be passed from users variable. For multiple arguments:

return view('users')->with('users', $users)->with('var1', $var1)->with('var2', $var2);