2017-10-18 13 views
0

ユーザパスワードを変更するために私のシステム上にページを作成していますが、検証はうまくいきますが、エラーメッセージは表示されません。Laravel MVC(PHP)、リクエストエラーメッセージ

(Iが使用する/輸入を示していないんだけど、それは結構です)

ここに私の要求です:

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!', 
     ]; 
    } 
} 

は、ここに私のコントローラです:

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]'); 
    } 
} 

そして、私のビューに私は持っています:

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

妥当性検証の一部が失敗したときに警告付きのdivが表示されますが、メッセージが表示されません。私はlaravelとOO phpには新しいです。何かについては申し訳ありません。

+4

'$エラー - >すべての()' '$ errors-> all'ではありません:) – Jeemusu

答えて

1

正しいコードは(@Jeemusuが言ったように)このようにする必要があります:

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

今は動作しています...私は5.5 btwを使っています、ありがとう! –