我在 Laravel 5.2 中使用会话,这是我的控制器代码:
if ($request->session()->has('username')) {
return view('dashboard');
}
我需要使用会话,并收到此错误:
HomeController.php 第 21 行中的 FatalErrorException:调用未定义的方法 Illuminate\Support\Facades\Request::session()
如何解决?
我在 Laravel 5.2 中使用会话,这是我的控制器代码:
if ($request->session()->has('username')) {
return view('dashboard');
}
我需要使用会话,并收到此错误:
HomeController.php 第 21 行中的 FatalErrorException:调用未定义的方法 Illuminate\Support\Facades\Request::session()
如何解决?
不确定您$request
来自哪里,但很可能您注射了错误的类型。
如果您只想要$request
您想要使用的实例Illuminate\Http\Request
有点像您正在注入 Facade。
Request
(在根命名空间中)是别名的外观。
Illuminate\Http\Request
是您想要其实例的实际请求类。
试着把它放在你的文件开头:
use Illuminate\Http\Request;
我有同样的问题并以这种方式解决。
只需将您的变量$request更改为另一个变量名。例如$requestApp。
这是代码:
if ($requestApp->session()->has('username')) {
return view('dashboard');
}
因为 $request 默认属于 use Illuminate\Http\Request;
您可以尝试使用这样的 Session 外观。
在顶端..
use Session;
在您的控制器方法中..
if (Session::has('username')) {
return view('dashboard');
}
嘿,如果您使用的是 laravel 5.2,这对我有用。
将您的控制器放在“网络”中间件中。喜欢,
Route::group(['middleware' => 'web'], function() {
//routes here
});
并确保内核文件已注册中间件类。
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\Perkweb\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\Perkweb\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];