gpt4 book ai didi

laravel - 如何结合 Laravel 验证 required_if 和 required_without_all 规则?

转载 作者:行者123 更新时间:2023-12-02 15:16:59 26 4
gpt4 key购买 nike

我遇到了订阅表单的情况,该表单必须根据用户选择具有不同的验证规则。我几乎完成了这个,但我陷入了一个需要组合规则的点,我认为我无法使用预定义的 Laravel 规则来获得这些规则。

如下图所示,重点是当用户选择发票首选项时,如果用户选项是打印,则可以使用选项数字打印 strong> 我需要至少一个物理地址,因此街道地址字段组OR 地区地址字段组必须为必填。

Flow chart related to conditional validation I need to achieve

必填字段除非填写其他字段可以通过required_without_all规则实现,所以我尝试没有成功,结合required_ifrequired_without_all 规则,如下例所示:

public function rules()
{
return [
...
'invoicing_preferences' => 'required',
'invoicing_email' => 'email|required_if:invoicing_preferences,digital',
'invoicing_street_name' => 'string|required_if:invoicing_preferences,printed|required_without_all:invoicing_district,invoicing_parcel',
'invoicing_street_number' => 'number|required_if:invoicing_preferences,printed|required_without_all:invoicing_district,invoicing_parcel',
'invoicing_street_flat' => 'number|required_if:invoicing_preferences,printed|required_without_all:invoicing_district,invoicing_parcel',
'invoicing_street_dep' => 'alpha_num|required_if:invoicing_preferences,printed|required_without_all:invoicing_district,invoicing_parcel',
'invoicing_district' => 'alpha_num|required_if:invoicing_preferences,printed|required_without_all:invoicing_street_name, invoicing_street_number; invoicing_street_flat,invoicing_street_dep',
'invoicing_parcel' => 'alpha_num|required_if:invoicing_preferences,printed|required_without_all:invoicing_street_name, invoicing_street_number; invoicing_street_flat,invoicing_street_dep',

...
];
}

此组合不起作用,因为无论我是否在第一点检查了数字始终都会导致required_with_all规则。

最佳答案

rules() 方法是一个预计返回规则数组的方法。我为什么要写这么明显的事情呢?好吧,在其中插入任何类型的验证逻辑,这意味着它还可以对发布的数据进行一些评估并逐渐构建返回数组。

public function rules()
{
$this; // holds information about request itself with all the data POST-ed

if (something) {
return []; // something is true...
}

return []; // default behaviour (ehm, something is not true)
}
<小时/>

另一种类似的方法是使用多个数组,最后将它们合并在一起(构建它们)。这可能会产生更好的代码。也不要害怕使用一两个私有(private)方法来清理代码。

关于laravel - 如何结合 Laravel 验证 required_if 和 required_without_all 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45721299/

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