Kohana 3:ORM验证消息

时间:2010-12-15 14:18:43

标签: php validation message kohana-3 kohana-orm

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

类/模型/ 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 ( ) ) ) 

我没有得到任何验证消息,只是上面的输出... 任何想法?谢谢。

2 个答案:

答案 0 :(得分:6)

今天遇到同样的问题。

解决方案:validate() - &gt; errors('')而不是validate() - &gt; errors()。

这是来自https://github.com/samsoir/core/tree/master/classes/kohana的beta核心,但也许在3.08中是相同的。

答案 1 :(得分:2)

在没有任何参数的情况下调用->errors()意味着您需要错误原件而不是错误翻译。结果将包含字段名称及其错误说明(应用规则/回调名称+参数)。在您的示例中,not_emptyresponsavel字段中包含email个规则(不带参数)。

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