2013-08-27 28 views
0

我是PHP和Codeigniter的新手。Codeigniter:從視圖鏈接時保留對象

我從我的控制器加載視圖。這個視圖中有一個form_open,它指向該控制器內的一個函數。我可以在該功能中使用先前在控制器中設置的變量嗎?

例如,控制器的構造函數加載模型。然後,此控制器中的另一個功能調用$this->model->someFunction($id)並將我的型號的$id變量設置爲$id。稍後,在我的視圖中單擊鏈接後,它將轉到控制器中的其他功能,然後調用$this-model->printID()。這失敗了,因爲在我的模型中,未設置$id

我該如何實現鏈接轉到訪問我之前修改的同一對象(或模型)的函數?也就是說,$ ID的最後一個回顯返回一個空白字符串 - $ID未按照我預期的那樣設置。

在此先感謝您的幫助。

我的控制器:

class Studio extends CI_Controller { 

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('studio_model','',TRUE); 
} 

function view($id) 
{ 
    $this->studio_model->setID($id); 
    $this->load->view('studio_view'); 
} 

function signup(){     
    $ID = $this->input->post('ID'); 
    $this->studio_model->signup($ID); 
} 
} 

我的模型:

Class studio_model extends CI_Model{ 

public $ID; 

function setID($id) { 
    $this->ID = $id; 
} 

function signup($ID){ 
    echo $this->ID; 
    echo $classID; 
} 
+1

如果你作爲新PHP中,**不要使用框架**。學習語言。 –

+0

謝謝您的意見 - 我不相信我有PHP本身的麻煩。 – dimab0

+0

我認爲回答我的問題是有關以下內容:http://ellislab.com/forums/viewthread/185409/#876547 一個PHP實例沒有保持,因此每個新的呼叫實例化新類,控制器等等。因此,如果你已經離開控制器之後再重新輸入一遍全局變量不再設置。 – dimab0

回答

0

我認爲,回答我的問題是有關以下內容:ellislab.com/forums/viewthread/185409/#876547一個PHP實例沒有保持,因此每個新的呼叫實例化新的類,控制器等。因此,如果您已經離開控制器並稍後重新輸入,則不再設置全局變量。