【问题标题】:Change validation message for a custom validation rule in Laravel在 Laravel 中更改自定义验证规则的验证消息
【发布时间】:2021-08-30 08:22:55
【问题描述】:

我正在尝试在 Laravel 中编写自定义验证规则,以确保逗号分隔列表中的每封电子邮件都不在禁止列表中。我已经有一个不同的规则来验证逗号分隔列表中的每封电子邮件是否都是有效的电子邮件,所以我不在这里检查。

上面的代码运行良好,但我有两个问题:

  1. 我可以做得更好吗?
  2. 如何修改错误消息以包含不正确的电子邮件地址?我想让它说类似"The email address test@example.com is on the suppression list and will not be used for sending"
public function passes($attribute, $value)
{
    $emails = explode(',', $value);

    foreach ($emails as $email) {
        $onSuppressionList = $this->suppressionListManager->find($email);
        
        if ($onSuppressionList) {
            return false;
        }               
    }

    return true;
}

public function message()
{
    return 'The validation error message.';
}

【问题讨论】:

  • 公共函数传递($attribute, $value) { $emails = explode(',', $value); $onSuppressionList = $this->suppressionListManager->whereIn('email',$emails)->exists(); if ($onSuppressionList) { return false; } } 返回真; }
  • 这个怎么样?我猜你可以检查其中的电子邮件
  • SuppressionListManager 是一个实用程序类。这不是 Eloquent 模型。那部分很好,无需更改。
  • 我发布了答案。如果有任何问题请告诉我

标签: laravel validation rules


【解决方案1】:

如下声明名为$suppressionList 的属性

  private $suppressionList=[];

然后将通行证更改为

public function passes($attribute, $value)
    {
        $emails = explode(',', $value);


        foreach ($emails as $email) {
            $onSuppressionList = $this->suppressionListManager->find($email);

            if ($onSuppressionList) {

                $this->suppressionList[]=$email;
            }
        }

        if(count($this->suppressionList)){

            return false;
        }

        return true;
    }

然后在自定义消息中

 public function message()
    {
        $emails=implode(",",$this->onSuppressionList);
        return 'The email address '.$emails.'is on the suppression list and will not be used for sending';
    }

要在消息中附加电子邮件,您也可以使用sprintf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2015-09-07
    • 2011-04-29
    • 2017-04-12
    • 2014-04-22
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多