Reputation: 733
I am trying to store data temporary and print in some other pages. The selected data lives only until I refresh the page. How can I fix it ? Thank you.
index.blade.php
<form action="" method="post">
{!! Form::select('first_name', $firstNames) !!}
<button type="submit" value="Submit">Go</button>
</form>
DashboardController.php
public function getIndex( Request $request )
{
$this->data['online_users'] = \DB::table('tb_users')->orderBy('last_activity','desc')->limit(10)->get();
$this->data['firstNames'] = \DB::table('tb_users')->orderBy('first_name')->lists('first_name', 'id');
$request->session()->put('first_name', input::get('first_name'));
$this->data['active'] = '';
return view('dashboard.index',$this->data);
}
Echo
<p>{{Session::get('first_name')}}</p>
Upvotes: 4
Views: 11725
Reputation: 506
Use session variable to persist data across pages
Page 1
{{Session::put('firstName','John')}}
Page 2
{{Session::get('firstName')}}
So Try this
public function getIndex( Request $request )
{
$this->data['online_users'] = \DB::table('tb_users')->orderBy('last_activity','desc')->limit(10)->get();
$this->data['firstNames'] = \DB::table('tb_users')->orderBy('first_name')->lists('first_name', 'id');
\Session::put('first_name', $request->get('first_name'));
$this->data['active'] = '';
return view('dashboard.index',$this->data);
}
Add your routes to the web middleware to use sessions!
Routes.php
Route::group(['middleware' =>['web']],function(){
Route::get('myroute','DashboardController@getIndex');
});
See more about laravel sessions here
Upvotes: 6
Reputation: 293
For store session :- session(['first_name' => $request->get('first_name')])
For getting session value :- session('first_name')
Upvotes: 0
Reputation: 2736
Try to do like this
public function getIndex( Request $request )
{
$data['online_users'] = \DB::table('tb_users')->orderBy('last_activity','desc')->limit(10)->get();
$data['firstNames'] = \DB::table('tb_users')->orderBy('first_name')->lists('first_name', 'id');
$data['first_name'] = input::get('first_name');
$data['active'] = '';
return view('dashboard.index')->with('data', $data);
}
Get on view like this
<p>{{ $data['first_name'] }}</p>
Upvotes: 0