J'utilise la classe App::error
de Laravel 4 pour intercepter les exceptions Sentry dans mon application et transmettre les données au modèle en utilisant la fonction withErrors()
.Laravel 4 'avec' données persistantes
itinéraire simple:
routes.php
Route::post('/login...
...
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
$user = Sentry::authenticate($credentials);
// Exception thrown...
ensuite pour attraper les exceptions:
exceptions.php
App::error(function(Cartalyst\Sentry\Users\WrongPasswordException $e) {
return Redirect::back()->withErrors(array('failed' => 'Email or password is incorrect'))->withInput();
});
Dans la vue:
/views/login/login.blade.php
@if ($errors->has('failed'))
<strong>{{ $errors->first('failed') }}</strong>
@endif
Le problème est, lorsque vous actualisez la page après un journal échoué dans la tentative de ces erreurs persistent si vous les voyez deux fois. Rafraîchissant une seconde fois, ils ont effacé. Idem pour l'entrée (passé avec withInput()
).
Si les erreurs sont interceptées dans la route (plutôt que dans App:error
), tout fonctionne normalement. Dois-je effacer les données stockées manuellement en utilisant les méthodes App::error
?