Kohana3.0与3.1版本ORM的Validation差异

今天用Kohana 3.1版本在开发的过程中发现Model中的验证不能使用,仔细看过代码才发现两版本中的验证方法有了区别

kohana 3.0中的验证如下:

/**
 * 验证规则(在模型中以成员出现)
 * @var array
 */
protected $_rules = array(
    'name' => array(
        'not_empty' => NULL
    ),
    'display' => array(
        'numeric' => NULL
    )
);

使用如下:

$user = ORM::factory('user', 1);
$user->name = 'Joe';
$user->values($_POST);
if ($user->check()) {
    $user->save();
} else {
    $errors = $user->validate()->errors();
}

Kohana 3.1中的验证规则要以方法形式出现,如下:

/**
 * 验证规则
 * @return array
 */
public function rules ()
{
    return array(
        'name' => array(
            array('not_empty'),
            array('min_length', array(':value', 4)),
            array('max_length', array(':value', 5))
        ),
        'password' => array(
            array('not_empty'),
        ),
        'email' => array(
            array('not_empty'),
            array('min_length', array(':value', 4)),
            array('max_length', array(':value', 127)),
            array('email')
        ),
    );
}

在验证的时候也不能直接使用$model->check(),要使用$admin_model->validation()->check()

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注