如何通过模型标签和错误消息传递外部验证?

时间:2011-10-31 12:03:42

标签: validation internationalization kohana kohana-3

在Kohana 3.2中,保存后在Model_User上传递外部验证,为什么不显示正确的消息?

我在user.phpapplication/messages/models可以读取和翻译“内部”数据,而_external.php位于application/messages/models/user

当_external数据无效时,会显示Kohana的默认错误消息,因此无法正确翻译或从Model_User获得正确的标签。

编辑,代码为:

// We have $_POST, register a new user
$user = ORM::factory('user');
/*
 *    Here a bunch of variables are set
 */
$extra = Validation::factory($_POST)->
        rule('email', 'email')-> // I run this check, because in my Model_User, email is filtered through Encrypt
        rule('name', 'not_empty'); // Same goes for name

try {
    $user->save($extra);
} catch (ORM_Validation_Exception $e) {
    $this->template->errors = $e->errors('models', true);
}

因此,当$extra变量与规则不匹配时,我希望从application/messages/models/user/_external.php获得很好的错误消息,如下所示:

return array(
    'email' => array(
            'email'         => ':field must be a valid email address',
        ),
    'name' => array(
            'not_empty'     => ':field must not be empty',
        ),
);

此外,如果:从Model_User“标签”获取字段会很好。

1 个答案:

答案 0 :(得分:2)

您需要将_external.php放在user.php目录旁边的messages/models旁边,而不是messages/models/user目录中。我有同样的问题,它对我有用。