Kohana 3.2:自定义验证规则的自定义错误消息?

时间:2012-03-06 21:12:24

标签: kohana kohana-3

我在我的模型中使用自定义方法验证规则(使用Kohana 3.2)。我遵循the documentation上列出的格式。

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

但是,如果规则失败,我似乎无法弄清楚如何添加自定义错误消息。

任何帮助?

1 个答案:

答案 0 :(得分:7)

对于这个例子,我们假设一个模态“用户”并验证字段“username”

<强> /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);
    )
)