2013-08-19 33 views
0

我在kohana框架中寫了一個應用程序,並且在用戶登錄方法中有問題 我正在使用包含的auth,數據庫和orm kohana模塊。我注意到,在登錄方法執行我的SQLite數據庫查詢3:Kohana - auth模塊中的pdo錯誤

SELECT user.* FROM users AS user WHERE username = 'dejwid' LIMIT 1 
SELECT role.* FROM roles AS role WHERE name = 'login' LIMIT 1 
SELECT COUNT(*) AS records_found FROM WHERE user_id = '1' AND role_id IN ('1') 

,不幸的是最後一個沒有很好地建立查詢(我認爲),因爲後從TABLENAME丟失。這可能是我的模型有問題,所以我會在下面貼我的模型代碼:

APP_PATH /班/模型/ user.php的:

class Model_User extends ORM 
{ 
    protected $_table_name = 'users'; 
    protected $_table_columns = array('user_id','email','username','password','logins','last_login'); 
    protected $_primary_key = 'user_id'; 
    protected $_has_many = array('roles'=>array()); 

    public function unique_key($id = NULL){ 
     if(!empty($id) && is_string($id) && !ctype_digit($id)){ 
     return 'username'; 
     } 
     return parent::unique_key($id); 
    } 
} 

APP_PATH /班/模型/ role.php:

class Model_Role extends ORM 
{ 
    protected $_table_name = 'roles'; 
    protected $_table_columns = array('id','name','description'); 
    protected $_primary_key = 'id'; 
    protected $_belongs_to = array(
     'users'=>array(), 
    ); 

    public function unique_key($id = NULL){ 
     if(!empty($id) && is_string($id) && !ctype_digit($id)){ 
      return 'name'; 
     } 
     return parent::unique_key($id); 
    } 
} 

如果它會幫助我想補充說我試圖按照this tutorial
我的問題是:爲什麼上次查詢中沒有tablename

+0

「爲什麼我的代碼不工作?」被認爲是一個太侷限的問題,因此不適合本網站。一般來說,程序員希望*調試*他們的代碼,以獲得這個問題的答案。 –

回答

1
protected $_has_many = array('roles'=>array('through' => 'roles_users')); 

或者是其他的表名,而不是roles_users