如何在laravel 5.5中获取验证消息

时间:2017-09-29 10:36:42

标签: php laravel validation laravel-validation laravel-5.5

大家好我正在使用Laravel 5.5,在这里我需要为我的API显示验证消息,我现在已经这样做了

const

由于Laravel 5.5具有一些非常棒的验证功能,我希望像这样验证我的请求

$validator = Validator::make($request->all(),[
            'first_name' => 'email|required',
            'last_name' => 'nullable',
            'email' => 'email|required',
            'mobile_no' => 'nullable|regex:/^[0-9]+$/',
            'password' => 'required',
        ]);
        if($validator->fails)
        {
            $this->setMeta('status', AppConstant::STATUS_FAIL);
            $this->setMeta('message', $validator->messages()->first());
            return response()->json($this->setResponse(), AppConstant::UNPROCESSABLE_REQUEST);
        }

但是我在这里遇到问题我应该怎么做以检查验证是否失败?就像我在request()->validate([ 'first_name' => 'email|required', 'last_name' => 'nullable', 'email' => 'email|required', 'mobile_no' => 'nullable|regex:/^[0-9]+$/', 'password' => 'required', ]);

那样做的

4 个答案:

答案 0 :(得分:3)

Laravel 5.5 中,与提及documentation一样,验证过程非常简单:

  • 显示验证错误:
  

那么,如果传入的请求参数没有通过给定的话,该怎么办?   验证规则?如前所述,Laravel会自动完成   将用户重定向回其先前的位置。另外,全部   验证错误将自动闪现到会话中。

     

再次注意,我们不必显式绑定错误   消息到我们的GET路线中的视图。这是因为Laravel会的   检查会话数据中的错误,并自动将它们绑定到   视图是否可用。

  • AJAX请求&验证:
  

在此示例中,我们使用传统表单将数据发送到   应用。但是,许多应用程序使用AJAX请求。使用时   在AJAX请求期间的验证方法,Laravel不会生成   重定向响应。相反,Laravel会生成JSON响应   包含所有验证错误。这个JSON响应将是   使用422 HTTP状态代码发送。

正如你所说的那样:这意味着你不需要把你的ifs用于处理验证laravel会很好地照顾它们:)

答案 1 :(得分:0)

这是我使用的一些语法

public static $user_rule = array(
'user_id'     => 'required',
'token' => 'required',
    );



public static function user($data)  
 {  
    try{
          $rules = User::$user_rule;
          $validation = validator::make($data,$rules);
          if($validation->passes())
          {


          }
          else
          {
              return Response::json(array('success' => 0, 'msg'=> $validation->getMessageBag()->first()),200);
          }
          return 1;
        }
    catch(\Illuminate\Databas\QueryException $e) {
            return Response::json(array('success' => 0, 'msg' => $e->getMessage()),200);
        }
 }
希望这会对你有帮助!

答案 2 :(得分:0)

请在标题中添加接受:application / json

Laravel自动发送带有响应代码的错误消息。

答案 3 :(得分:0)

根据2019 Laravel 5.8的操作就这么简单:

// create the validator and make a validation here...
if ($validator->fails()) {
    $fieldsWithErrorMessagesArray = $validator->messages()->get('*');
}

您将获得字段名称和错误消息的数组。