2015-12-29 4 views
6

Я использую сессии в Laravel 5.2 и вот мой код контроллера:Laravel 5,2 - Призыв к неопределенным метод Осветите Support Фасады Request :: сессии()

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

мне нужно использовать сессии, и получаю эту ошибку:

FatalErrorException в HomeController.php строке 21: Вызов неопределенной метод Осветите \ Support \ \ Фасады Request :: сессии()

Как его решить?

+1

не забудьте добавить 'use Illuminate \ Http \ Request;' –

ответ

7

Не знаете, где у вас есть $request, но более вероятно, что вы вводите неправильный тип.

Если вы просто хотите $request экземпляра вы хотите использовать Illuminate\Http\Request

Любопытным выглядит, как вы испытываете фасад впрыскивается вместо этого.

Request (в корневом пространстве имен) является фасадом, который является псевдонимом.

Illuminate\Http\Request - это фактический класс запроса, в котором вы хотите получить экземпляр.

+0

Ну, это на контроллере. Я уже определил использование Illuminate \ Http \ Request в верхней части. Но метод session() не работает. –

+0

, что ошибка означает, что это неправильный класс, который вводится.поэтому, если эта ошибка в вашем сообщении не разрешена, вы даже не делаете ее с вызовом 'has'. – lagbox

0

Эй Если вы используете 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', 
    ], 
]; 
+0

Я сделал то же самое. Но я думаю, что я выясню проблему. Моя проблема была в том, что я не мог использовать '$ request-> session-> has ('key')'. Проблема заключалась в том, что я только что создал сеанс вроде 'session ('key')'. Но если я использовал '$ request-> session() -> put ('key', 'value');' тогда это может сработать! –

+0

Здесь вы идете .. вы нашли свою проблему проблемы ...;) – Cowboy

+0

Право. Но спасибо в любом случае. :) –

0

Вы можете попробовать с помощью Session Facade.

На вершине ..

use Session; 

В вашем методе контроллера ..

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

просто изменить переменную $ запрос на другое имя переменной. например $ requestApp.

Вот код:

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

, потому что $ запрос по умолчанию принадлежат использовать ILLUMINATE \ Http \ Request;

0

Попробуйте поставить это в вашем файле начать:

use Illuminate\Http\Request; 

У меня была такая же проблема, и решить таким образом.