下面是我目前验证的一个片段:
'independent_financial_advisor' => 'required|boolean',
'understand_objective' => 'required|boolean',
'confirm_objective' => 'required|boolean',
'understand_term_held' => 'required|boolean',
'tax_relief' => 'required|boolean',
我需要验证当independent_financial_advisor
为false时,下面剩下的4个字段必须为true。我找不到任何Laravel规则可以做到这一点,所以我想使用闭包来创建一个自定义规则。
这样做的问题是,我不知道如何引用闭包中的另一个字段来检查其值。
最好的办法是什么?谢谢
6条答案
按热度按时间ddrv8njm1#
我添加了一个名为
true_if_reference_is_false
的自定义验证规则,并向其传递了一个参数independent_financial_advisor
。因此,验证看起来像这样:
您需要在
App\Providers\AppServiceProvider.php
Import Facade Validator中定义此验证规则。然后在
boot
方法中定义规则:希望这有帮助:)
u4dcyp6a2#
有关更多验证规则,请查看laravel文档www.example.com https://laravel.com/docs/5.7/validation#rule-required-if
krugob8w3#
3zwjbxry4#
使用Laravel 8,我通过以下方式解决了这个问题:
ybzsozfc5#
我今天遇到了这个问题,并使用条件验证闭包解决了它(因为它在整个应用程序中只使用一次)。
基本上,用户必须根据需要标记
phone
或email
字段。它们可以都是true
,也可以只有一个是true
,但不能都是false
。技巧是
use
闭包中的request
对象,以访问需要作为验证检查一部分的其他字段。字段是array
强制转换属性的一部分,这就是为什么它具有.
的原因。wljmcqd86#