我之前就使用Laravel 5和AJAX设置就地编辑问了一个问题here。我没有更新它,因为我已经离线管理以找出它出了什么问题。
虽然该表能够就地编辑用户行,但我现在正尝试在其上添加验证,打算使用Laravel的内置验证器。但是,出于某种原因,它似乎没有起作用。当我尝试通过JSON传回失败的验证器时,它会吐出我正在检查的每个可能的错误。这就好像验证器将每个输入视为空,这没有意义,因为函数的其余部分显然是按预期接收输入。
我上一个问题中的代码段仍然大部分都是相关的,但 HomeController.php 已有更新,如下所示:
public function updateTable(Users $users){
$user = request()->input('user');
$first_name = request()->input('first_name');
$last_name = request()->input('last_name');
$validator = Validator::make(request()->all(), [
'firstName' => 'required|alpha',
'lastName' => 'required|alpha'
], [
'firstName.required' => 'You need to give a first name!',
'firstName.alpha' => 'A first name can only contain letters!',
'lastName.required' => 'You need to give a last name!',
'lastName.alpha' => 'A last name can only contain letters!'
]);
if ($validator->fails()) {
return response()->json($validator, 404);
}
$employees->editUser($user, $first_name, $last_name);
return response()->json($user);
}
答案 0 :(得分:0)
所以我意识到这个问题是双重的。首先,当验证器失败时我试图返回的内容不正确。我不是简单地传递整个验证器,而是简单地传递它的消息,如下所示:
if ($validator->fails()) {
return response()->json($validator->messages(), 404);
}
第二个问题实际上与调用" request() - > all()"有关。我曾经假设获得的阵列可以工作,但由于某种原因它没有。当我根据" request()"中的值创建一个新数组时它能够得到我期待的验证结果。