Kohana 3.2: Пользовательское сообщение об ошибке для пользовательского правила проверки? - PullRequest
1 голос
/ 07 марта 2012

Я использую пользовательский метод для правила проверки в моей модели (используя Kohana 3.2). Я следую формату, указанному в документации .

// Calls A_Class::a_method($value);
array(array('A_Class', 'a_method')),

Но я не могу понять, как добавить собственное сообщение об ошибке, если правило не выполняется.

Любая помощь?

1 Ответ

7 голосов
/ 07 марта 2012

Для этого примера мы возьмем модальное «пользователь» и проверяем поле «имя пользователя»

/ 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')),
            )
        );
    }
}

A_Class

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);
    )
)
...