laravel框架版本在5.2.27以下使用session时:在同一个控制器不同的方法中session值会取不出来,当取值时会报以下的错误:
错误说的是:未设置请求的会话储存区
需要在app/Providers/RouteS erviceProvider.php中加以下代码:
protected function mapWebRoutes(Router $router)
{
$router->group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require app_path('Http/routes.php');
});
}
最主要的是在你路由时加上:
Route::group(['middleware' => ['web']], function () {
});
如:
Route::group(['middleware' => ['web']], function () {
// your routes here
Route::any('test','MyController@test');
});
在控制器中使用session的方法:
引入:
use Session;
use Illuminate\Http\Request;
存session值:
public function test(Request $request)
{
$name = $request->get('name');
$request->session()->put('key', "$name");
}
取session值:
public function test2(Request $request)
{
$data = $request->session()->all();
dd($data);
}
在view中取session值: