【问题标题】:Laravel API : Call to a member function validate() on arrayLaravel API:调用数组上的成员函数 validate()
【发布时间】:2021-06-15 19:20:41
【问题描述】:

我使用 Laravel 作为带有 Passport Password Grant Token 的 API。我需要验证请求中的用户属性,但validate() 方法出现错误。

下面是我的update 方法...

public function update(Request $request)
{
    $attributes = [
        'last_name' => ['string'],
        'first_name' => ['string']
    ];
    $validator = $request->user->validate($attributes);

    if ($validator->fails()) {
        return $validator;
    }
}

...正在返回此错误日志:

local.ERROR: 在数组 {"userId":1234,"exception":"[object] (Error(code: 0): 调用数组上的成员函数 validate() 上调用成员函数 validate()在 /Users/me/my-project/app/Http/Controllers/UserController.php:122)

我的代码有什么问题?

【问题讨论】:

  • 这一行抛出错误`return $validator;`?
  • @Droid $request->user->validate($attributes) 返回错误

标签: laravel


【解决方案1】:

从请求中获取当前用户我认为你应该使用user() 方法而不是用户属性...

无论如何..要从带有规则的数组中获取验证器,您可以使用Validator::make 方法:

   $validator = Validator::make($request->all(),  $attributes);

  if ($validator->fails()) {
        return $validator; // here I think you should redirect to error page
    }

【讨论】:

    猜你喜欢
    • 2021-10-06
    • 2022-01-22
    • 2017-05-22
    • 2018-06-28
    • 2019-01-22
    • 2019-01-18
    • 2016-09-17
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多