2013-02-02 101 views
0

我不確定如何獲取外部錯誤消息以顯示。Kohana 3.2外部驗證

領域

<?php echo Form::input('membername', $username, array('id' => 'username')); ?><?php echo Arr::get($errors, 'membername');?> 

控制器

try 
{  
    $extra_rules = Validation::factory($this->request->post()) 
     ->rule('membername', 'not_empty'); 

    $username->update($extra_rules); 
} 
catch (ORM_Validation_Exception $ex) 
{ 
    $errors = $ex->errors('models/user'); 
} 

/models/user/_external.php

return array(
    'membername' => array(
     'not_empty' => 'You must provide a member name.', 
    ), 
); 

當該字段爲空,則不顯示錯誤消息。

回答

0

我猜Kohana找不到正確的信息,因此什麼也沒有顯示。

如果membername是型號user的一員,該錯誤信息應在/models/user.php,而不是/models/user/_external.php定義。


編輯:<?php echo Arr::path($errors, '_external.membername'); ?>

+0

這不是一個成員: 如果membername是不是模型中的一員,應通過提供錯誤。我一直在研究,似乎如果字段名稱不是列名,我應該做外部驗證,例如,如果它是password_confirm。我不知道爲什麼它沒有找到消息。 – markerpower

+0

該文檔指出使用'<?php echo Arr :: path($ errors,'_external.password_confirm'); '',我不知道它是否與它不是成員有關,如果字段名是'_external [password_confirm]'。 var_dump($ errors)'的輸出是什麼? – tmuguet

+0

謝謝。這工作。 – markerpower