在Kohana 3.2中,在保存時通過外部驗證Model_User
,爲什麼不顯示正確的消息?如何通過模型標籤和錯誤消息傳遞外部驗證?
我在application/messages/models
讀取和翻譯精爲「內部」數據user.php
,而_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「標籤」中獲取字段將會很好。
你可以發佈代碼示例嗎?你傳遞給** errors()**函數的參數是什麼? –
添加上面的代碼。乾杯 – Alasjo