mstdmstd
Новичок
Всем привет,
Хочу сделать пользовательскую валидацию :
В методе модели есть метод :
Но в результате у меня сообщение об ошибке имеет вид:
то я могу пробежаться по массиву и сделав проверку по ключу(имени поля) и тексту ошибке и поменять текст ошибки, только я не уверен что это лучший способ.
А как правильно?
Хочу сделать пользовательскую валидацию :
PHP:
$validation -> rule('name', 'not_empty')->
rule('name', 'Model_Facility::unique_name', array(':value', ':validation', ':field') );
PHP:
public static function unique_name($name, $validation, $field)
{
AppUtils::deb($name, '$name::'); // Вывожу на экран переменные -ok
AppUtils::deb($validation, '$validation::');
AppUtils::deb($field, '$field::');
$id = Request::current()->param('id');
$Res= DB::select(array(DB::expr('COUNT(name)'), 'total'))
->from('facility')
->where('name', '=', $name)
->where('id', '!=', $id)
->execute()
->get('total');
AppUtils::deb($Res, 'unique_name$Res::');
if ( $Res ) { // Если строка с таким именем существует то я хочу вывести свое сообщение об ошибке
AppUtils::deb('INSIDE::');
$validation->error($field, 'This facility name must be unique!'); // В нете я нашел что это делается так - хотя не уверен насчет версии 3.3
}
return !$Res;
}
Поскольку список ошибок выводится в массивThe comments.name.Model_Facility::unique_name
PHP:
$validation_errors_list = $validation->errors( 'comments' );
А как правильно?