Laravel 5.2-调用未定义的方法Illumb\Support\Facades\Request::session()

Laravel 5.2-调用未定义的方法Illumb\Support\Facades\Request::session(),session,laravel-5.2,Session,Laravel 5.2,我正在使用Laravel 5.2中的会话,以下是我的控制器代码: if ($request->session()->has('username')) { return view('dashboard'); } 我需要使用会话,并出现以下错误: HomeController.php第21行中的FatalErrorException:调用undefined 方法\Support\Facades\Request::session() 如何解决此问题?不确定从哪里发出$re

我正在使用Laravel 5.2中的会话,以下是我的控制器代码:

if ($request->session()->has('username')) {
        return view('dashboard');
}
我需要使用会话,并出现以下错误:

HomeController.php第21行中的FatalErrorException:调用undefined 方法\Support\Facades\Request::session()


如何解决此问题?

不确定从哪里发出
$request
,但很可能是注入了错误的类型

如果您只需要
$request
实例,则需要使用
illighted\Http\request

有点像你正在注射门面

Request
(在根命名空间中)是带别名的外观


illighted\Http\Request
是您想要实例的实际请求类。

嘿,如果您使用的是laravel 5.2,这对我来说很有用

将控制器放入“web”中间件中。像

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',
    ],
];

您可以尝试这样的会话外观

在最上面

use Session;
在控制器方法中

if (Session::has('username')) {
    return view('dashboard');
}

只需将变量$request更改为另一个变量名即可。例如,$requestApp

代码如下:

if ($requestApp->session()->has('username')) {
    return view('dashboard');
}

因为$request默认属于use\Http\request

尝试将此文件放在文件开头:

use Illuminate\Http\Request;

我也遇到了同样的问题,用这种方法解决了。

好吧,它在控制器上。我已经在顶部定义了use\Http\Request。但是session has()方法不起作用。该错误意味着注入的类是错误的。因此,除非你帖子中的错误得到解决,否则你甚至不能打到
has
电话。我也是这么做的。但我想我找到了问题所在。我的问题是,我无法使用
$request->session->has('key')
。问题是我刚刚创建了类似于
session('key')
的会话。但是如果我使用了
$request->session()->put('key','value')那么它可能会工作!干得好。。你发现了你的问题…;)正确的。不过还是要谢谢你确保添加
使用light\Http\Request