Laravel 验证 requiredIf 与数组索引

时间:2021-07-29 17:40:09

标签: php arrays laravel validation laravel-validation

当同一索引中的另一个数组字段具有特定值时,我需要将 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,我会将 required 添加到 data.0.area。问题是我无法访问 requiredIf 方法中的当前索引。

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

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

谢谢

0 个答案:

没有答案
相关问题