正如标题所说,我在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已经有一段时间但是我记得总是用它进行验证,我错过了什么吗?
答案 0 :(得分:0)
validate()
不会返回任何内容。如果失败,它只会抛出一个400 Bad Request
错误,同时还会显示一条包含失败原因的消息(即"需要名字字段")。你越过它的事实意味着数据是有效的。
如果您想使用自己的逻辑,可以执行以下操作:
$validator = \Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email'
]);
if($validator->fails()){
$errors = $validator->errors();
....