gpt4 book ai didi

laravel - 如何在Laravel Rule中传递参数?

转载 作者:行者123 更新时间:2023-12-03 16:00:48 25 4
gpt4 key购买 nike

我想将此代码移至App\Rule:

//Currently in class AppServiceProvider extends ServiceProvider

Validator::extend('empty_if', function ($attribute, $value, $parameters, $validator) {
return ($value != '' && request($parameters[0]) != '') ? false : true;
});

因此应该是这样的:
//in: App\Rules\EmptyIf

public function passes($attribute, $value, $parameters)
{
return ($value != '' && request($parameters[0]) != '') ? false : true;
}

但是我的问题是,我不能通过
Validator::extend('empty_if', 'App\Rules\EmptyIf@passes');

您如何将参数传递给Laravel Rule?

最佳答案

如果我正确理解了您的需求,则无需扩展验证器。

您似乎上过课:

class EmptyIf extends Rule {
public function passes($attribute, $value, $parameters) { }
}

然后,您可以将其用作:
$this->validate($data, [ "entry" => [ new EmptyIf() ] ]);

您可能可以同时使用以下两种方法:
Validator::extend('empty_if', function ($attribute, $value, $parameters) {
return (new EmptyIf())->passes($atribute, $value, $parameters);
});

关于laravel - 如何在Laravel Rule中传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50174006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com