【问题标题】:Laravel 5: Validating Edits In-PlaceLaravel 5:就地验证编辑
【发布时间】:2017-09-29 05:31:06
【问题描述】:

我之前问过一个问题here,关于使用 Laravel 5 和 AJAX 设置就地编辑。我没有更新它,因为我设法离线找出它有什么问题。

虽然该表能够就地编辑用户行,但我现在正尝试在其之上添加验证,打算利用 Laravel 的内置验证器。但是,由于某种原因,它似乎不起作用。当我尝试通过 JSON 传回失败的验证器时,它会吐出我正在检查的所有可能的错误。就好像验证器将每个输入都视为空,这是没有意义的,因为函数的其余部分显然正在按预期接收输入。

我上一个问题中的代码sn-ps仍然主要相关,但是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);

}

【问题讨论】:

  • 如果您更新了之前的问题,那就太好了。还回复了试图帮助你的人。
  • 我承认,我的反应有点奇怪,因为我的最终解决方案与建议的内容大相径庭。不过,这是一个公平的观点。上一个问题已通过重定向到此处进行编辑。

标签: ajax validation laravel-5


【解决方案1】:

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

if ($validator->fails()) {

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

}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    相关资源
    最近更新 更多