首页 > 解决方案 > 需要 Laravel 验证如果带有数组索引

问题描述

required当同一索引中的另一个数组字段具有特定值时,我需要将规则应用于我的表单请求中的数组字段。例子:

public function rules(): array
{
    return [
       'data' => 'array',
       'data.*.is_admin' => 'required|boolean',
       'data.*.area' => [
           'nullable',
           Rule::requiredIf($condition),
           // other rules...
       ]
    ]
}

在评估数组中的第一项时,如果data.0.is_admin = 1,我将添加requireddata.0.area. 问题是我无法访问requiredIf方法内的当前索引。

使用闭包我能够访问当前索引,但我不能覆盖nullable规则,除非我添加required一个并且我需要能够传递nullarea. 我不能使用sometimes,因为我需要在area = null.

现在我正在循环$request->data并有条件地为每个索引添加规则。我想知道是否有一种方法可以使用 Laravel 的数组 sintax 来实现这一点。

谢谢

标签: phparrayslaravelvalidationlaravel-validation

解决方案


推荐阅读