I use the Lumen microstructure (by Laravel) for the project, and I am having problems with sessions. I am just testing the implementation now, but the problem I'm experiencing is that when I set the session variable and then refresh the page, the variable is no longer set.
In my .env file, I have:
SESSION_DRIVER=cookie
And I know that this is matched because when I change it to memcached it generates an error (because I don't have memcached settings).
I also included middleware:
$app->middleware([ 'Illuminate\Session\Middleware\StartSession', 'Illuminate\View\Middleware\ShareErrorsFromSession', ]);
Then in my controller, I:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class SessionController extends Controller { public function index(Request $request) { $request->session()->put('email', ' test@test.com '); $request->session()->save();
The value is set when the page loads:
string(13) " test@test.com "
But then, when I comment out the lines that set the variable and then refresh the page, the value is NULL:
// $request->session()->put('email', ' test@test.com '); // $request->session()->save(); var_dump($request->session()->get('email')); exit;
The browser sets one cookie, but it does not appear for the session variable:
laravel_session 2ecef0103418ca82d068ec6a6c6fbec388af9b9e localhost / 2015-06-22T14:59:29.856Z 55 ✓
EDIT: The cookie is actually set if I set SESSION_DRIVER as a cookie - regardless of whether I actually set the session variable.
I am not sure where I am going wrong, and I do not find the documentation very comprehensive.
thanks