Laravel 4 のApp::error
クラスを使用して、アプリケーション全体で Sentry 例外をキャッチし、withErrors()
関数を使用してデータをテンプレートに戻しています。
簡単なルート:
routes.php
Route::post('/login...
...
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
$user = Sentry::authenticate($credentials);
// Exception thrown...
次に、例外をキャッチします。
exceptions.php
App::error(function(Cartalyst\Sentry\Users\WrongPasswordException $e) {
return Redirect::back()->withErrors(array('failed' => 'Email or password is incorrect'))->withInput();
});
ビューで:
/views/login/login.blade.php
@if ($errors->has('failed'))
<strong>{{ $errors->first('failed') }}</strong>
@endif
問題は、ログインに失敗した後にページを更新すると、これらのエラーが持続するため、エラーが 2 回表示されることです。もう一度更新すると、クリアされました。入力についても同様です ( で渡されますwithInput()
)。
エラーが ( ではなくApp:error
) ルート内で検出された場合、すべて正常に機能します。App::error
メソッドを使用して、保存されたデータを手動で消去する必要がありますか?