我正在尝试使用kohana2 docs(http://docs.kohanaphp.com/addons/auth)中提供的ORM示例为我的kohana2应用程序创建登录表单。我已经完成了维基中的所有操作,但在提供用户名,密码和发送表单后,没有任何反应。没有错误,没有例外,没有!只是相同的形式没有任何错误。
这是控制器操作,我唯一改变的是添加模板功能:http://pastebin.com/jEc4nqSP
第42行有一个die()
函数,它用于调试目的。发送表单后,会显示Array ( [username] => invalid ) 1
。我确定我在数据库中拥有该用户数据,并且我提供了正确的用户名和密码。角色设置为login
。你知道我做错了什么吗?
感谢。
答案 0 :(得分:0)
在第39行,您将创建一个空的ORM用户对象。至少,你当然想要:
ORM::factory('user', $post['username'])
虽然您可能想重构它,但它实际上会检查是否设置了用户名值。
答案 1 :(得分:0)
好的问题解决了!我们需要做的就是使用此代码创建一个新用户(来自kohana2 docs的注册控制器):
<?php
// grab relevant $_POST data
$username = $this->input->post('username');
$password = $this->input->post('password');
// instantiate User_Model and set attributes to the $_POST data
$user = ORM::factory('user');
$user->username = $username;
$user->password = Auth::instance()->hash_password($password);
// if the user was successfully created...
if ($user->add(ORM::factory('role', 'login')) AND $user->save()) {
// login using the collected data
Auth::instance()->login($username, $password);
// redirect to somewhere
url::redirect('user/profile');
}
之前的管理员登录数据无效,导致密码未正确散列。