【发布时间】:2013-05-12 21:16:56
【问题描述】:
我是 kohana 3.2 的新手,我找不到任何重新分级身份验证模块的答案。 这是我的代码,自从我将用户模型更改为扩展 model_auth_user 以来,出于某种原因 验证没有正确完成。密码字段可以插入空,如果 password_confirm 和密码字段不同,则不会捕获任何异常:
public function action_new()
{
if ($_POST){
try
{
$user = ORM::factory('user')
->values(array(
'username' => $_POST['username'],
'email' => $_POST['email'],
'password' => $_POST['password'],
'password_confirm' => $_POST['password_confirm']));
$user->save();
$user->add('roles', ORM::factory('role', array('name' => 'login')));
$this->request->redirect('user/index');
}
catch (ORM_Validation_Exception $e)
{
$errors = $e->errors();
}
}
$view = View::factory('user/new')
->bind('errors',$errors); //pass the info to the view
$this->response->body($view); //show the view
}
谢谢
【问题讨论】:
-
请显示 Model_User 代码。检查它的
rules()方法是否正确。 -
密码规则不能通过
rules()创建,因为那样它就已经被散列了。您需要从Model_Auth_User(或您使用的扩展 Model_Auth_User 的类)检查(并发布)create_user -
使用 Kohana 3.3。在您的情况下,您可能重新定义了一些原始的
Model_Auth_User方法或属性,并且没有包含父函数或属性代码。
标签: kohana