Laravel验证返回null

时间:2018-01-26 20:44:32

标签: php laravel validation null

正如标题所说,我在Laravel 5.5中的验证无效,这是我控制器中的代码

$val = $this->validate($request, [
                'name' => 'required',
                'email' => 'required|email'
                ]);
                if($val->fails()) {
                    return "Fail":
                } else {
                    return "Success";
                }

如果我尝试转储变量$val,我得到null作为回报。此外,我已经检查过我是否正确输入了输入,是的,$request->input()会返回我的数据。

请求中的字段:

"name" => "test"
  "email" => "test@test.com"
  "oldPassword" => null
  "newPassword" => null
  "repeatPassword" => null

(空字段未经验证,因为我在此请求中不需要它们,因此它们为空)

自从我碰到Laravel已经有一段时间但是我记得总是用它进行验证,我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

validate()不会返回任何内容。如果失败,它只会抛出一个400 Bad Request错误,同时还会显示一条包含失败原因的消息(即"需要名字字段")。你越过它的事实意味着数据是有效的。

如果您想使用自己的逻辑,可以执行以下操作:

$validator = \Validator::make($request->all(), [
      'name' => 'required',
      'email' => 'required|email'
]);

if($validator->fails()){
    $errors = $validator->errors();
    ....