在laravel 4中,您可以通过将其添加到$this->messages
数组中来创建自定义验证错误消息。但就我而言,我需要在运行自定义验证规则时在运行时添加它。
例如,我有这样的自定义规则:
Validator::extend('isCityNamesValid', function ($attribute, $value, $parameters) {
$value = array_map('trim', explode("\n", $value));
if(empty($value)) {
return true;
}
$invalidNames = \City::getInvalidCityNames($value, $parameters);
if(!empty($invalidNames)) {
$this->messages[$attribute.'.is_city_names_valid'] = sprintf('You provide invalid city names for selected countries, please remove/fix these names: %s.', implode(', ', $invalidNames));
return false;
}
return true;
});
在此自定义规则中,仅当规则失败时才创建消息,并且将自定义数据附加到消息中。是否可以不覆盖默认的laravel passes
方法?还是我需要在不使用laravel验证机制的情况下进行此类验证?