当前位置: 首页 > 知识库问答 >
问题:

如何使用自定义请求验证laravel数组?

金令
2023-03-14

如何使用自定义请求进行验证,我的请求使用数组键

$request = [
  'link_inc_characteristic_id' => $inc_char_id[$i],
  'value' => $value[$i],
  'created_by' => $created_by,
  'last_updated_by' => $last_updated_by,
];

$this->validate($request, [
   'value['.$i.']' => 'max:30'
]);

$linkIncCharacteristicValue = LinkIncCharacteristicValue::create($request);
return Response::json($linkIncCharacteristicValue);

[编辑][代码更新]显示错误:

传递给App\Http\Controllers\Controller::validate()的参数1必须是给定数组的Illumbite\Http\Request的实例,

共有3个答案

祁远
2023-03-14

这是因为我将验证放在循环中,而不是使用*字符来验证数组

...
for ($i=0; $i < $count ; $i++) {
   ...
   $this->validate($request, [
      'value['.$i.']' => 'max:30'
   ]);
   ...
   // save etc
}

正确的代码,将验证放在循环之前,并使用*字符进行数组验证:

$this->validate($request, [
      'value.*' => 'max:30'
]);
...
for ($i=0; $i < $count ; $i++) {
   // save etc
}
宋昕
2023-03-14

错误消息告诉您出了什么问题:

传递给App\Http\Controller\Controller的参数1::验证()必须是Illumate\Http\Request的实例,给定数组

因此,将请求实例传递给validate()方法:

public function store(Request $request)
{
    $this->validate($request, [
        'value.*' => 'max:30',
    ]);
}

查看以下资源:

  • https://laravel.com/docs/master/validation#validation-quickstart
  • https://laravel.com/docs/master/validation#validating-arrays
乜明朗
2023-03-14

控制器::验证()不是一个通用的验证方法,它验证请求。对于这个用例,只需直接使用验证器:

Validator::make($data, ['value' => 'max:30']);
 类似资料:
  • 我想验证我的控制器中的一个请求参数。请求参数应该来自给定值列表中的一个,如果不是,则应该抛出错误。在下面的代码中,我希望请求参数orderBy来自@Values准许中存在的值列表。 我已经编写了一个自定义bean验证器,但不知何故,它不起作用。即使我为查询参数传递任何随机值,也不会验证并引发错误。

  • 我正在尝试在laravel中编写用于验证的自定义消息。我在网上查过,看到一些帖子,其他人通过添加一个受保护的函数来解决同样的问题。我还向代码中添加了该函数,但它不起作用。这是我的代码这是myFormController.php: 公共函数请求(注册请求$request){$validated=$request- 这是RegistrationRequest.php: 使用Illumb\Contrac

  • 这是我的视图代码: 和请求验证程序: 发送post请求以创建方法后,它将 SQLSTATE[42S22]:找不到列: 1054未知列'article.title'in'where cluse' SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“article.title”(SQL:选择count(*)作为来自的聚合,其中title=test) 更新 这是我的控制器代码

  • 我们目前正在与社交名媛Laravel的谷歌登录应用程序。我们有一个获得许可号ex的Auth用户。264.我们做了一个函数,它返回一个包含所有二进制数的数组,这个权限号被取消了。 由于每次加载页面时调用此函数可能会有点繁重,因此我们考虑在创建Auth::user()时添加此函数一次。我们曾考虑在模型中添加一个自定义构造函数,但我们无法使其工作。 但是我们不能让它工作,在调用这个函数时没有值。 太长,

  • 问题内容: 我将Laravel应用程序从4升级到5。但是,我有一个自定义验证器,无法使用。 在L4中,我制作了一个 validators.php 文件,并使用将其包含在 global.php 中。 我尝试在L5中做一些相同的事情。我在 app / Validators / Validators.php中 放置了一个验证 器 ,并更新了 composer.json 。 但是,现在任何页面上都没有呈现

  • 我正在创建一个laravel应用程序与自定义多重身份验证。我正在跟随这篇文章进行多重身份验证。https://pusher.com/tutorials/multiple-authentication-guards-laravel 我已经创建了登录和注册控制器定义的警卫和提供者,一切正常,我能够注册用户并登录他们。我写了一页(http://127.0.0.1:8000/admin)只有当管理员登录时