我正在尝试在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 ( ) ) )
我没有得到任何验证消息,只是上面的输出... 任何想法?谢谢。
答案 0 :(得分:6)
今天遇到同样的问题。
解决方案:validate() - &gt; errors('')而不是validate() - &gt; errors()。
这是来自https://github.com/samsoir/core/tree/master/classes/kohana的beta核心,但也许在3.08中是相同的。
答案 1 :(得分:2)
在没有任何参数的情况下调用->errors()
意味着您需要错误原件而不是错误翻译。结果将包含字段名称及其错误说明(应用规则/回调名称+参数)。在您的示例中,not_empty
和responsavel
字段中包含email
个规则(不带参数)。
顺便说一下,->errors('')
和->errors('validate')
是同义词。