Laravel 5:就地编辑验证

时间:2017-05-01 19:29:10

标签: ajax validation laravel-5

我之前就使用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);

}

1 个答案:

答案 0 :(得分:0)

所以我意识到这个问题是双重的。首先,当验证器失败时我试图返回的内容不正确。我不是简单地传递整个验证器,而是简单地传递它的消息,如下所示:

if ($validator->fails()) {

  return response()->json($validator->messages(), 404);

}

第二个问题实际上与调用" request() - > all()"有关。我曾经假设获得的阵列可以工作,但由于某种原因它没有。当我根据" request()"中的值创建一个新数组时它能够得到我期待的验证结果。