2015-12-29 5 views
6

私はLaravel 5.2でセッションを使用し、ここに私のコントローラのコードでいます:Laravel 5.2 - 未定義のメソッドを照らしサポートファサード要求に呼び出し::セッション()

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

私がセッションを使用する必要があり、 HomeController.phpライン21で

FatalErrorException:このエラーを取得し、未定義 方法を照らし\サポート\ファサード\要求::セッション()の呼び出し

解決方法

+1

'use Illuminate \ Http \ Request;を追加してください。 –

答えて

7

$requestがどこに由来しているのかわからないが、間違ったタイプが注入されている可能性があります。あなたはちょうどあなたがIlluminate\Http\Request

を使用したい$requestインスタンスをしたい場合は、ファサードは、代わりに注入しあっているよう

がちょっと見えます。

Request(ルート名前空間内)は、エイリアス化されたFacadeです。

Illuminate\Http\Requestインスタンスの実際のリクエストクラスです。

+0

これはコントローラ上にあります。私はすでにIlluminate \ Http \ Requestを使用して定義しています。しかし、セッションhas()メソッドが動作していません。 –

+0

そのエラーは、間違ったクラスが注入されていることを意味します。あなたの投稿のそのエラーが解決されない限り、あなたは 'has'呼び出しをしていません。 – lagbox

0

ちょっとlaravel 5.2を使用している場合、これは私のために働いています。

コントローラを「Web」ミドルウェアに置きます。 like、

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

このようなセッションファサードを試すことができます。

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

はちょうど別の変数名にあなたの変数$要求を変更トップに

...あなたのコントローラの方法で

use Session; 

..例えば、$ requestApp。ここで

はコードです:

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

デフォルトで$要求が点灯\のHttp \要求を使用することが属しているからです。

0

が始まるファイルでこれを入れてみてください。

use Illuminate\Http\Request; 

私は同じ問題を抱えていたし、この方法で解決しました。

関連する問題