Kohana 3.2: Пользовательское сообщение об ошибке для пользовательского правила проверки?
Я использую пользовательский метод для правила проверки в моей модели (используя Kohana 3.2). Я следую формату, указанному в документации.
// Calls A_Class::a_method($value);
array(array('A_Class', 'a_method')),
Но я не могу понять, как добавить собственное сообщение об ошибке, если правило не выполняется.
Любая помощь?
1 ответ
Решение
Для этого примера мы возьмем модальное "пользователь" и проверяем поле "имя пользователя"
/application/classes/model/user.php
class Model_User extends ORM
{
public function rules()
{
return array(
'username' => array(
array('not_empty'),
array('A_Class::a_method', array(':value')),
)
);
}
}
Класс
public static function a_method($value)
{
// Validate and return TRUE or FALSE
}
/application/messages/forms/user.php
Добавлена папка форм, чтобы показать, что мы можем выбрать файл сообщения для загрузки с ошибками. Файл сообщения соответствует названию модели (пользователь)
return array(
'username' => array(
'not_empty' => 'Custom error message for not_empty method',
'A_Class::a_method' => 'Custom error message for you own validation rule...'
),
);
Теперь в вашем контроллере для проверки и отображения сообщений об ошибках
class Controller_User extends Controller
{
// User model instance
$model = ORM::factory('user');
// Set some data to the model
$model->username - 'bob';
// Try to validate and save
try
{
$model->save()
}
catch (ORM_Validation_Exception $e)
{
// Loads messages from forms/user.php
$errors = $e->errors('forms');
// See the custom error messages
echo Debug::vars($errors);
)
)