我正在尝试针对一组复选框制定自定义规则。请求数据正确地像
cbarray => [
cb1 => null,
cb2 => true,
cb3 => true,
]
我正在尝试制定一个验证规则,如果所有复选框都设置为 true,则该规则将失败。
然后我将它添加到我的 Laravel 规则中
'job-payment.*' => [ new NotAllTrue ],
期望这将作为值数组发送到我的规则中,但它似乎只发送第一个属性和值。
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class NotAllTrue implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return !array_reduce($value, function ($carry, $val) {
return $carry && $val;
}, true);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'These cannot all be true.';
}
}
如果你想传递整个数组,你必须这样写:
'job-payment' => [ new NotAllTrue ],
如果要独立验证数组的每个元素,则:
'job-payment.*' => [ new NotAllTrue ],
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句