2012-10-30 34 views
0

這裏是kohana的新成員。我的實習中有一項任務是使用kohana framework 3.2進行登錄系統。我也是用自動建模器ORM插入,更新和刪除東西。我現在用kohana auth遇到了一些麻煩。我已經擁有數據庫結構Imported並在'users'表中插入了一個用戶,並在'roles_user'表中給他一個角色。kohana Auth with automodeler ORM

在APP還創建了一個Auth.php文件/配置/:

return array(

    'driver'  => 'AutoModeler_ORM', 
    'hash_method' => 'sha256', 
    'hash_key'  => 'Somebiglonghaskeyofmixedcharacters102345567709', 
    'lifetime'  => 1209600, 
    'session_type' => Session::$default, 
    'session_key' => 'auth_user', 
); 

在我的控制,我有下面的代碼登錄功能:

if ($_POST) 
{ 
$post = $this->request->post(); 
$success = Auth::instance()->login($post['email'], $post['password']); 

if ($success) 
{ 
echo "Welcome!"; 
} 
else 
{ 
echo "Something goes wrong..."; 
} 

} 

我已經激活了引導模塊。

引擎收錄鏈接到我的榜樣:http://pastebin.com/bQYReETh 引擎收錄鏈接到我的用戶模型:http://pastebin.com/ufzvKjmA

的問題是,我總是在其他人。

有人有一個想法是怎麼回事? 我錯過了什麼嗎?

+0

什麼是您遇到的錯誤?從問題中不清楚你到底面臨的問題是什麼。 – jcern

+1

錯誤在於我總是通過$ succes進入else語句。謝謝你這麼說。我編輯了我的問題。 – woodle

+0

當Auth調用'$ this - > _ login()'時,可能無法在模型的查詢中找到用戶。 – wesside

回答

2

@Woodle,

也許增加一個_constructor可以提供幫助。

public function __construct($id = NULL) 
    { 
     if ($id !== NULL) 
     { 
      $this->load(db::select_array($this->fields())->where($this->_table_name.'.username', '=', $id)); 
     } 
     elseif ($this->id) // We loaded this via mysql_result_object 
     { 
      parent::__construct($id); 
     } 
    } 
+0

或類似的東西? :) – Findi

+0

@woodle確實解決了您的問題,因爲我擁有相同的功能 – Findi

+0

我的kohana Auth與auto-modeler_orm現在可以正常工作。我的另一個問題是我以ORM風格而不是auto-modeler_ORM風格設置關係。你有什麼樣的問題? – woodle