Php Laravel 4自定义验证错误消息

Php Laravel 4自定义验证错误消息,php,validation,laravel,laravel-4,Php,Validation,Laravel,Laravel 4,因此,我尝试添加一个自定义验证规则,如下所示: 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 return str_ireplace(":before

因此,我尝试添加一个自定义验证规则,如下所示:

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
return str_ireplace(":before", $this->attributes[$parameters[0]], $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
return str_ireplace(":before", $this->attributes[$parameters[0]], $message);
以下是我的自定义验证消息:

":attribute must be a date after :before"
我添加了以下自定义验证属性:

'attributes' => array(
        'event_start'=>'Event Start Date',
        'event_end' => 'Event End Date',
    )
但当我无法在自定义验证类中访问它时,我尝试了以下方法:

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
return str_ireplace(":before", $this->attributes[$parameters[0]], $message);
但是得到一个错误
未定义的属性:CustomerValidator::attributes

有人知道如何正确地做到这一点吗

编辑:

在my global.php中扩展了它

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

在阅读了validator类的文档之后,我找到了答案


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

您是否在此验证上定义了
验证程序::extend
方法?是的,我已经在my global.php中定义了它,我将在中添加代码