我想在Kohana 3.3.0中使用带有ORM驱动程序的Auth模块,但我唯一能做的就是在数据库中插入新用户。我不能用他们登录。
$user = ORM::factory('User')->create_user($user_data, array(
'username',
'password')
);
$user->save();
$user_id = !empty($user->id) ? $user->id : 0;
$user_type = !empty($_POST['admintype'] ? $_POST['admintype'] : 3);
//$user->add('roles', ORM::factory('Role', array('name' => 'login')));
$user->add('roles', $user_type);
用户已创建但当我尝试登录时返回null
$user_name = !empty($_POST['username']) ? $_POST['username'] : '';
$userpassword = !empty($_POST['userpassword']) ? ($_POST['userpassword']) : '';
$user = Auth::instance()->login($user_name, $userpassword);
Auth->login()
returns login status,所以它应该是:
$auth = Auth::instance();
if($auth->login($user_name, $userpassword)) {
$user = $auth->get_user()
} else {
throw HTTP_Exception::factory('403', 'Login fail');
}
并且更好地使用本地kohana函数来get values form arrays:
$user_name = Arr::get($_POST,'username','');
或在控制器use:
$user_name = $this->request->post('username','')