4
似乎在Kohana的ORM的v3.1.0中,_ignored_columns
属性已被删除。Kohana v3.1.0 ORM _ignored_columns - 现在它已经不存在了,我该怎么做呢?
什么是推荐的技术来处理不在数据库中的字段?我现在的情况是password_confirm,其中密码是一个字段,但我们要求用户输入两次密码。
似乎在Kohana的ORM的v3.1.0中,_ignored_columns
属性已被删除。Kohana v3.1.0 ORM _ignored_columns - 现在它已经不存在了,我该怎么做呢?
什么是推荐的技术来处理不在数据库中的字段?我现在的情况是password_confirm,其中密码是一个字段,但我们要求用户输入两次密码。
您可以传递额外的验证对象来保存,创建和更新。因此,您的示例如下所示:
/**
* Password validation for plain passwords.
*
* @param array $values
* @return Validation
*/
public static function get_password_validation($values)
{
return Validation::factory($values)
->label('password', 'password')
->label('password_confirm', 'repeat password')
->rule('password', 'not_empty')
->rule('password', 'min_length', array(':value', 8))
->rule('password_confirm', 'matches', array(':validation', ':field', 'password'));
}
/**
* Create user account
*
* @param array $values
* @param array $keys
* @throws ORM_Validation_Exception
*/
public function create_user($values, $keys)
{
$external = Model_User::get_password_validation($values);
$this->values($values, $keys);
return $this->create($external);
}
请注意密码验证是如何传递到create方法的。
$keys
值指定应将哪些值保存到模型中。 “password_confirm”不在该列表中,因此被忽略。此功能也与安全有关,您不希望用户在其POST请求中手动设置标识。
然后你就可以通过调用create_user
创建一个用户:
$user->create_user($_POST, array('username', 'email', 'password'));
我想这是一个很值得做的唯一途径。去做一些其他的事情有点痛苦。顺便说一句,谢谢你升级到3.1后发布。这很有帮助,我有更大的名单... – 2011-02-14 04:21:22