2011-03-21 52 views
0

我創建了一個名爲「用戶」模型,該模型有一個名爲「項」的方法,另一種叫「書」代碼點火器型號及圖書館CI

我想一個$ USER_ID參數傳遞到模型,以便它會在我的控制器中創建一個類的實例。

我現在打電話控制器模型的方法是:

$data1 = $this->user->entries($user_id); 
$data2 = $this->user->books($user_id); 

我想直接傳遞USER_ID參數的構造函數,以便我不必每次使用$ USER_ID參數

也許這樣的事情(我知道的語法是錯誤在這種情況下):

$this->load->model('user',$user_id); 
$data['row1'] = $this->user->entries(); 
$data['row2'] = $this->user->books(); 

請原諒我缺乏OOP ..我剛纔提出的SWITC的理解H。 感謝您的幫助

+0

http://codeigniter.com/user_guide/general/models.html – 2011-03-21 18:45:56

回答

2

您不能將變量傳遞給構造函數,但可以設置一個方法來設置用戶ID,然後使用它。

例子:

class user extends CI_Model{ 

    var $user_id; 

    function __construct(){ 
    parent::__construct(); 
    } 

    function set_user_id($user_id){ 
    $this->$user_id = $user_id; 
    } 
} 

然後你entriesbooks書籍方法中,你可以使用$this->$user_id,而無需再次傳遞。

像這樣:

function entries(){ 
    $user_id = $this->user_id; 
    } 
+0

它越過我的腦海,可是轉念一想,也許有更好的理由,爲什麼我不應該這樣做因爲這不像CI中的所有其他「簡單」。基本上我試圖理解,如果我的邏輯是錯誤的,如果應該避免將變量傳遞給模型到一起,並使用這個類作爲庫而不是模型...只是想一想 – salmane 2011-03-21 18:56:45

+1

@salmane:模型用於與數據庫進行交互。它們可以包含獲取和設置數據庫中數據的方法。我建議將參數發送給每個函數,以便它們可以獨立於對方。 – 2011-03-21 19:06:26

+0

@火箭謝謝你。只是所以我更好地理解它在CI模型不創建一個對象的實例不像一個PHP類? – salmane 2011-03-21 19:59:52