Selim
Selim

Reputation: 733

Laravel - Store data temporary

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

Answers (4)

rahul
rahul

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

Pooja JaJal
Pooja JaJal

Reputation: 293

For store session :- session(['first_name' => $request->get('first_name')])

For getting session value :- session('first_name')

Upvotes: 0

Komal
Komal

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

scottevans93
scottevans93

Reputation: 1079

Try replacing compact('data') with $data

Upvotes: 0

Related Questions