使用数组作为参数的Laravel自定义验证

时间:2017-04-08 03:51:15

标签: laravel

新手在这里。任何人都可以帮助我在自定义验证中获取参数。

这是我的验证规则:

['materials.*.receive_quantity' => 'lessthan:materials.*.quantity']

这是我的自定义验证:

Validator::extend('lessthan', function ($attribute, $value, $parameters, $validator) { return $value <= $parameters[0]; });

当我dd($parameters)时,它会返回字符串'材料。*。数量'。 TIA。

1 个答案:

答案 0 :(得分:0)

首先,您需要5.4.18版本。 然后,尝试以下代码:

Validator::extendDependent('lessthan', function ($attribute, $value, $parameters, $validator) {
    return $value <= array_get($validator->getData(), $parameters[0]);
});

您可以查看此拉取请求以获取更多解释和示例:PR#18564

P.S。可能这是您的代码中的拼写错误:您的规则名称是“lessthan”,但您使用“&lt; =”运算符而不是“&lt;”。