【问题标题】:Laravel Validator::extendedDependent() dynamic error messageLaravel Validator::extendedDependent() 动态错误信息
【发布时间】:2020-05-17 15:49:19
【问题描述】:
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


    【解决方案1】:

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

    Mininum deposit for :id is : :deposit.
    

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

    【讨论】:

      【解决方案2】:

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

       $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);
                      }
                  );
      

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 2020-12-20
        • 2017-03-11
        • 2012-06-20
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        相关资源
        最近更新 更多