使用自定义规则进行Laravel阵列验证

时间:2018-05-15 10:40:35

标签: php laravel validation laravel-5

CustomFormRequest我有这样的事情:

public function rules(): array
{
    return [
        'events' => ['array'],
        'events.*.type' => ['required'],
        'events.*.data' => [app(SomeRule::class)],
    ];
}

SomeRule

public function passes($attribute, $value): bool
{
    var_dump($attribute);//events.0.data
    var_dump($value);exit;
}

SomeRule::passes我需要有events.X.type的访问权限(因此events.5.data我需要events.5.type)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

当用户在我的问题Validating array in Laravel using custom rule with additional parameter中发表评论时,您可以使用此代码来完成此操作,根据您的情况,它就像

class SomeRule implements Rule
{
    public function passes($attribute, $value)
    {
        $index = explode('.', $attribute)[1];
        $type = request()->input("events.{$index}.type");

        return someConditional ? true : false;
    }
}