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