在Laravel 5.4上的会话未持续

Fab*_*cio 3 session laravel-5.4

我在Laravel Sessions上遇到一些问题,现在我正在Laravel 5.4下工作,所以,我将以下代码用于set session:

$request->session()->put('usuario', 'somevalue');
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用以下代码从同一控制器上的另一个函数获取会话值时:

$request->session()->get('usuario');
Run Code Online (Sandbox Code Playgroud)

我正在获取NULL,正在尝试导入Session并使用“网络”中间件

use Illuminate\Support\Facades\Session;
Run Code Online (Sandbox Code Playgroud)

但是我仍然遇到同样的错误。

路线:

Route::group(['middleware' => 'web'], function () {
Route::post('login','UsuarioController@login');
Route::get('usuariodatos','UsuarioController@getDatos');
});
Run Code Online (Sandbox Code Playgroud)

控制器,功能登录:

$data=$request->json()->all();
    $user=Usuario::where('correo_electronico', $data['login_correo'])->first();

    if(!empty($user->id_usuario)) {
        if(Hash::check( $data['login_passwd'], $user->passwd) == true) {
            $request->session()->put('usuario', $user); 

            $ses = $request->session()->get('usuario');
          return json_encode(array("resultado" => $ses));

        } else {

        }
    } else {
    }
Run Code Online (Sandbox Code Playgroud)

控制器功能获取会话:

public function getDatos(Request $request)
{
  return json_encode(array("resultado"=>$request->session()->get('usuario')));
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?

谢谢

小智 5

您需要添加:$ request-> session()-> save();

否则放置会话将不会持续。

奇怪的是,即使在官方文档中也没有这个重要的细节。