2017-10-18 19 views
0

Je suis en train de développer une page sur mon système pour changer le mot de passe des utilisateurs, et la validation fonctionne très bien, mais je n'ai pas de messages d'erreur.Laravel MVC (PHP), demande des messages d'erreur

(je ne montre pas les USAGES/importations, mais il est très bien)

Voici mon demande:

class SenhaRequest extends FormRequest 
{ 
    public function authorize() 
    { 
     return true; 
    } 

    public function rules() 
    { 
     return [ 
      'senha_antiga' => 'required|min:6|max:24', 
      'nova_senha' => 'required|min:6|max:24|same:nova_senha_r', 
      'nova_senha_r' => 'required|min:6|max:24|same:nova_senha' 
     ]; 
    } 

    public function messages() { 
     return [ 
      'same' => 'A :attribute e a :other devem ser iguais.', 
      'required' => 'O campo :attribute é obrigatório!', 
     ]; 
    } 
} 

Voici mon contrôleur:

class MudarSenhaController extends Controller { 

    public function index() { 
     return view('account/senha'); 
    } 

    public function update(SenhaRequest $request) { 
     $user = Auth::user(); 

     $user->password = bcrypt($request->input('nova_senha')); 

     $user->save(); 

     return redirect()->action('Account\[email protected]'); 
    } 
} 

Et moi j'ai:

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

La div avec alerte apparaît quand une partie de la validation échoue, mais je n'ai reçu aucun message. Je suis nouveau à laravel et OO php, désolé de tout.

+4

'$ errors-> tous()' pas '$ errors-> all' :) – Jeemusu

Répondre

1

Le code correct (comme dit @Jeemusu) devrait ressembler à ceci:

(Laravel 5.3 documentation)

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

(Laravel 5.4 and 5.5 documentation)

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

Maintenant ça marche ... j'utilise 5.5 btw, merci! –