【问题标题】:laravel print the validation error messagelaravel 打印验证错误信息
【发布时间】:2014-06-17 21:37:53
【问题描述】:

我在 laravel http://laravel.com/docs/validation#working-with-error-messages 中阅读了有关验证的官方页面,并关注了他们。所以我的代码是

 $input = Input::all();
        $validation = Validator::make($input, Restaurant::$rules);

        if ($validation->passes())
        {
            Restaurant::create($input);

            return Redirect::route('users.index');
        }
        else{
            $messages = $validation->messages();
            foreach ($messages->all() as $message)
            {
                echo $message + "</br>";
            }
        }

我可以看到错误消息,但它只是00。有没有更好的方法可以知道错误在哪个表单的字段中以及错误描述是什么?

我已经有rules,现在我的输入违反了规则,但我需要阅读错误消息

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:
     $messages = $validation->messages();
    
                foreach ($messages->all('<li>:message</li>') as $message)
                {
                    echo $message;
                }
    

    Official Documentation

    在 Validator 实例上调用 messages 方法后,您将收到一个 MessageBag 实例,该实例有多种方便的方法来处理错误消息。

    根据MessageBag documentation函数all获取包中每个键的所有消息。

    【讨论】:

      【解决方案2】:

      您可以通过errors() 对象访问错误,并循环访问所有规则的键。

      类似这样的:

      Route::get('error', function(){
      
          $inputs = array(
              'id'        => 5,
              'parentID'  => 'string',
              'title'     => 'abc',
          );
      
          $rules = array(
              'id'        => 'required|integer',
              'parentID'  => 'required|integer|min:1',
              'title'     => 'required|min:5',
          );
      
          $validation = Validator::make($inputs, $rules);
      
          if($validation->passes()) {
              return 'passed!';
          } else {
              $errors = $validation->errors(); //here's the magic
              $out = '';
              foreach($rules as $key => $value) {
                  if($errors->has($key)) { //checks whether that input has an error.
                      $out.= '<p>'$key.' field has this error:'.$errors->first($key).'</p>'; //echo out the first error of that input
                  }
              }
      
              return $out;
          }
      
      });
      

      【讨论】:

        猜你喜欢
        • 2018-04-30
        • 1970-01-01
        • 1970-01-01
        • 2014-03-25
        • 2019-11-11
        • 2016-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多