2016-07-20 6 views
0

時間を無駄にしてしまったような(私が思ったように)マイナーなことが無ければ、あなたの助けが必要です。セッションの仕方:LaravelのデフォルトのAuthControllerを使ってフラッシュする

php artisan make:authコマンドを使用してLaravelでクイックスタートを作成しました。それでloginメソッドをAuthControllerに再定義しました。今、それは次のようになります。私の見解では

protected function login(Request $request) { 
    if (Auth::attempt(["name" => $request->username, "password" => $request->password])) { 
     return Redirect::route("home")->with("message", "Zalogowano"); 
    } else { 
     return Redirect::route("get.login")->with("message", "Nie zalogowano"); 
    } 
} 

私は{{ Session::get("message") or "" }}

を持っているし、私のメッセージは表示されません。

私もSession::flash("message", "message string")を試しましたが、同じ効果があります。

成功したログイン後にメッセージを表示するにはどうすればよいですか?

PS。ログインとログアウトはうまくいきます。

+0

Laravelのどのバージョンを使用していますか? –

+0

It's Laravel 5.2 – Maad

+0

'{{session( 'message')}}' –

答えて

0

(認証ルートを含む)'web'ミドルウェア・グループ内で定義され、あなたのルートがありますか? 'web'ミドルウェアグループは、セッションの開始を処理します。具体的には、ミドルウェア\Illuminate\Session\Middleware\StartSession::classがセッションの開始を処理します。セッションなし、メッセージなし。あなたのルートはそうのようなルートグループに包まれるべきである。

Route::group(['middleware' => 'web'], function() { 
    // Define routes here 
}); 

は、ミドルウェアのクラスはそれらにこのミドルウェアグループとダイビングに含まれているものを見るためにapp\Http\Kernel.phpで見てください。

+0

あなたはほとんど正しいです。問題は私のルートにありましたが、それはデフォルトでルートが設定されているため、Webミドルウェアで宣言することはできません。私のエラーはルートを2回宣言していた。 'php artisan route:list'が役に立ちました。ヘッドアップをありがとう! – Maad

+0

ああ!私はその前に間違いを犯しました。お役に立てて嬉しいです。 – Taylor

0

テンプレートで{{$ message}}をお試しください。

- > with( "varnamehere"、 "value")を使用してリダイレクトの最後にデータをフラッシュすると、$ varnamehereでテンプレートの変数にアクセスできます。

変数は単に存在し、テンプレートで使用できる状態です。

マニュアルに明示的に説明している部分はないようです。あなたのビューテンプレートトライで

0

@If(?セッション() - >は( 'メッセージ')セッション() - >( 'メッセージ')を取得する: "")

@endif設定されている場合は...

はそれがお役に立てば幸いです。メッセージを出力します

関連する問題