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