2013-02-02 96 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