In Laravel, the compact
function is commonly used in controllers to pass variables to blade views. The compact
function creates an array where the keys are variable names and the values are the corresponding variable values. Here’s how you can use compact
in a Laravel controller to pass variables to a blade page:
In your controller method, define the variables that you want to pass to the blade view:
public function index()
{
$name = 'John';
$age = 30;
return view('my-page', compact('name', 'age'));
}
In this example, we define the variables $name
and $age
with their corresponding values.
Pass the variables to the blade view using the compact
function:
return view('my-page', compact('name', 'age'));
The compact('name', 'age')
statement creates an array with the keys 'name'
and 'age'
and their corresponding values from the variables.
Access the variables in your blade view:
<h1>Welcome, {{ $name }}</h1>
<p>Your age is: {{ $age }}</p>
In the blade view, you can access the variables using the $
sign followed by the variable name ($name
and $age
in this example).
The compact
function is a convenient way to pass variables to blade views without explicitly creating an associative array. It helps keep your code clean and readable.
Alternatively, you can also use the with
method when returning the view to pass variables individually:
return view('my-page')->with('name', $name)->with('age', $age);
In this case, each variable is passed individually using the with
method.
Both approaches achieve the same result of passing variables from the controller to the blade view. Choose the one that suits your coding style and preferences.