所以我试图添加这样的自定义验证规则:
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);
});
答案 0 :(得分:3)
我在阅读验证器类的文档后找到了答案。
通过使用$this->getAttribute($parameters[0])
,我设法获取自定义属性名称。