首页 > 解决方案 > Laravel 自定义规则传递数组属性

问题描述

我有一个自定义规则,但不确定如何将一个数组属性传递给该规则。

以下是我的formRequest规则方法

'reservedProducts'             => ['bail', 'array'],
'reservedProducts.*.productId' => ['required',new CheckForStockAvailability()],

在名为 的数组中传递了另一个隐藏字段reservedProducts[locationId],我如何将其传递locationIdCheckForStockAvailability规则?

我不想传递所有请求属性,而只是传递locationId.

谢谢

标签: laravel

解决方案


例如,考虑以下规则,如果 payment_type 的值为 cc,则指定需要信用卡号:

Validator::make($request->all(), [
                'credit_card_number' => 'required_if:payment_type,cc' ]);

如果此验证规则失败,它将产生以下错误消息:

当支付类型为抄送时,信用卡号字段为必填项。

除了将 cc 显示为支付类型值,您还可以通过定义 values 数组在 resources/lang/xx/validation.php 语言文件中指定更用户友好的值表示:

'values' => [
    'payment_type' => [
        'cc' => 'credit card'
    ],
],

定义此值后,验证规则将产生以下错误消息:

当支付类型为信用卡时,信用卡号字段为必填项。


推荐阅读