【问题标题】:Laravel 4 custom validation error messageLaravel 4 自定义验证错误信息
【发布时间】:2014-03-25 17:17:14
【问题描述】:

所以我试图添加这样的自定义验证规则:

public function validateDateAfterField($attribute, $value, $params)
{
  return strtotime($value) > strtotime($this->data[$params[0]]);
}

它获取值并使用正在验证的数据数组中的另一个字段进行验证

我希望它产生这样的错误消息:

Event End Date must be a date after Event Start Date

这是我的自定义验证消息:

":attribute must be a date after :before"

我添加了这些自定义验证属性:

'attributes' => array(
        'event_start'=>'Event Start Date',
        'event_end' => 'Event End Date',
    )

但是当我无法在我的自定义验证类中访问它时,我尝试过这样的事情:

return str_ireplace(":before", $this->attributes[$parameters[0]], $message);

但出现错误Undefined property:CustomerValidator::attributes

有人知道如何正确执行此操作吗?

编辑:

在我的 global.php 中扩展它

Validator::extend('date_after_field', 'CustomValidator@DateAfterField');
Validator::resolver(function($translator, $data, $rules, $messages)
{
    return new CustomValidator($translator, $data, $rules, $messages);
});

【问题讨论】:

  • 您是否在此验证中定义了Validator::extend 方法?
  • 是的,我已经在我的global.php中定义了,我会在里面添加代码

标签: php validation laravel laravel-4


【解决方案1】:

我在阅读了验证器类的文档后找到了答案。

通过使用$this->getAttribute($parameters[0]),我设法获得了自定义属性名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2017-05-30
    • 1970-01-01
    相关资源
    最近更新 更多