2016-01-05 1 views
0

J'ai le code suivant à mon avis

@if ($errors->any()) 
    <ul class="alert alert-danger"> 
    @foreach ($errors->all() as $error) 
     <li>{{ $error }}</li> 
    @endforeach 
    </ul> 
@endif 

Je me attends des erreurs $ soient disponibles à mon avis, alors je veux les afficher

Cependant , ce bloc jette l'exception suivante:

ErrorException en ligne 958ab466b0f563093a9e18c3ff070466cc69459a.php 38: Undefined variable: erreurs (Voir: ..... filename.blade.php

+0

Etes-vous sûr que la variable $ errors est disponible dans la vue à chaque fois, sauf dans les cas d'erreurs? Je pense que vous devriez vérifier si la variable d'erreurs est définie –

Répondre

3

Pour Laravel 5.2, assurez-vous de mettre vos routes au sein du groupe middleware web comme ceci:

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

j'ai écrit une explication plus approfondie sur les raisons de c'est le cas ici: Laravel 5.2 validation errors

En résumé, Laravel 5.0 et 5.1 étaient utilisés pour exécuter automatiquement plusieurs logiciels intermédiaires. Un de ces middlewares (\Illuminate\View\Middleware\ShareErrorsFromSession) utilisé pour injecter automatiquement la variable $errors dans toutes vos vues. Laravel 5.2 rend tout cela optionnel maintenant, mais vous pouvez obtenir le même résultat en plaçant simplement vos routes dans le groupe de middleware web.

+0

Les [documents Laravel pour la validation] (https://laravel.com/docs/5.2/validation#quick-displaying-the-validation-errors), ont été mis à jour pour faire c'est plus clair. – lagbox

+0

Merci Thomas et lagbox. Cela l'a arrangé pour moi. – Das