2014-02-24 170 views
1

所以我试图添加自定义验证规则是这样的: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 

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

":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', '[email protected]'); 
Validator::resolver(function($translator, $data, $rules, $messages) 
{ 
    return new CustomValidator($translator, $data, $rules, $messages); 
}); 
+0

您是否在此验证中定义了一个Validator :: extend方法? – revo

+0

是的,我已经在我的global.php中定义了它,我将添加代码 –

回答

3

我已经找到了答案读取验证类的文档后。

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