Laravel Validator :: extendedDependent()动态错误消息

问题描述 投票:1回答:2
Validator::extendDependent('cbu_deposit', function ($attribute, $value, $parameters, $validator){     
             $arr = explode('.', $attribute);
             $account = $validator->getData()[$arr[0]][$arr[1]];

             $type = $account['type'];
             if($value < $type['minimum_deposit_per_transaction']){
                return false;
             }
             return true;
});

根据laravel api,第三个参数是$ message

void extendDependent(string $rule, Closure|string $extension, string|null $message = null)

我想知道如何使他这样的错误消息动态化

$error = "Mininum deposit for " .$type['product_id']. ' is : '.$type['minimum_deposit_per_transaction'].'.';
laravel laravel-validation
2个回答
3
投票

您可以将变量添加到这样的错误消息中:

Mininum deposit for :id is : :deposit.

检查https://laravel.com/docs/validation#custom-error-messages


0
投票

我已经在$validator->addReplacer()中使用Validator::extendDependent('cbu_deposit')方法找到了答案。

 $customMessage = "Mininum deposit for " .$type['product_id']. ' is : '.$type['minimum_deposit_per_transaction'].'.';

            $validator->addReplacer('cbu_deposit', 
                function($message, $attribute, $rule, $parameters) use ($customMessage) {
                    return \str_replace(':custom_message', $customMessage, $message);
                }
            );
© www.soinside.com 2019 - 2024. All rights reserved.