There are multiple ways through which you can pass data from your routes to views. We will explore them all.
-
Attaching data to view
You can bind your data directly to your view file and while returning the view from the routes.
Route::get('/', function(){
return view('welcome',['name'=>'World','age'=>3]);
});
With this above route, variable name and age are now directly available to your in your view file and you can echo / print the variable with something like
<h1>Hello {{$name}}</h1>
-
Attaching data using with method
You can bind data to view using with keyword. This works exactly similar to the previous way of attaching the data.
Route::get('/', function(){
return view('welcome')->with('name','World');
});
-
Using compact method
Laravel has provided a compact method which looks more systematic and can be used like below.
//Welcome view
Route::get('/', function(){
$name = 'World';
return view('welcome',compact('name'));
});
//Data View
Route::get('/data', function(){
$name = 'World';
$age = '28';
return view('data',compact('name','age'));
});
//Sending as List
Route::get('/listdata', function(){
$tasks = [
'Write Code',
'Unit Test',
'Deliver'
];
return view('listdata',compact('tasks'));
});
Comments