Laravel MVC(PHP),Request error message

问题描述:

我在我的系统上开发一个页面来更改用户密码,验证工作正常,但我没有收到任何错误消息。Laravel MVC(PHP),Request error message

(我没有展示用途/进口,但它是罚款)

这里是我的要求:

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

'$错误 - >所有()'不''错误 - >所有':) – Jeemusu

正确的代码(如@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顺便说一句,谢谢! –