0

我正在尝试在 Kohana 3(Orm 模型)中添加验证消息。

类/模型/cliente.php

<?php defined('SYSPATH') or die('No direct script access.');

class Model_Cliente extends ORM {
 protected $_table_name = 'clientes';
 protected $_primary_key = 'id';
 protected $_has_one = array('loja' => array());
 protected $_rules = array(
  'responsavel' => array('not_empty' => array(), 'min_length' => array(3)),
  'email' => array('not_empty' => array(), 'email' => array()),
  'telefone' => array('regex' => array('/^(\(\d{2}\)|\d{2})[ -]?\d{4}[ -]?\d{4}$/'))
 );
}
?>

消息/cliente.php

<?php defined('SYSPATH') or die('No direct script access.');

return array(
    'responsavel' => array(
        'not_empty' => 'O nome do responsável não pode ficar em branco.',
        'min_length' => 'O nome do responsável deve conter 3 caracteres ou mais.'
    )
);

?>

输出:

Array ( [responsavel] => Array ( [0] => not_empty [1] => Array ( ) ) [email] => Array ( [0] => not_empty [1] => Array ( ) ) ) 

我没有收到任何验证消息,只是上面的这个输出......有什么想法吗?谢谢你。

4

2 回答 2

6

今天遇到了同样的问题。

解决方案:validate()->errors('') 代替 validate()->errors()。

这是来自https://github.com/samsoir/core/tree/master/classes/kohana的 beta 核心,但在 3.08 中可能是一样的。

于 2010-12-15T14:29:25.317 回答
2

不带任何参数调用->errors()意味着您需要错误原件而不是错误翻译。结果将包含字段名称及其错误描述(规则/回调名称 + 应用的参数)。在您的示例中,您在and字段上有not_empty规则(没有参数) 。responsavelemail

顺便说一句,->errors('')->errors('validate')是同义词。

于 2010-12-15T21:52:27.397 回答