繁体   English   中英

Laravel 4自定义验证错误消息

[英]Laravel 4 custom validation error message

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM