所以我在CodeIgniter中玩了一下。現在我正在嘗試構建一個「頁面概述」頁面。我有另一個頁面可以創建頁面,並且我想在概覽中顯示這些頁面。使用控制器模型中的變量 - CodeIgniter
現在我在我的模型,我得到了以下內容:
public function page_list(){
$query = $this->db->get('pages');
if ($query){
$pageListing = "<table class='table table-striped'>";
foreach ($query->result() as $row){
$pageListing .= "<tr>";
$pageListing .= "<td>".$row->title."</td>";
$pageListing .= "<td>".$row->category."</td>";
$pageListing .= "<td>".$row->date."</td>";
$pageListing .= "<td><a href='delete_page/".$row->id."'>delete</a></td>";
$pageListing .= "<td><a href='edit_page/".$row->id."'>edit</a></td>";
$pageListing .= "</tr>";
}
$pageListing .= "</table>";
} else {
$pageListing = "There are no pages to display";
}
}
我知道這是不是做的最好的方式。我顯然在模型中編寫屬於視圖的html代碼。現在我不打擾這件事。我只是想弄清楚如何在我的控制器中使用變量$pageListing
,然後從那裏加載到視圖中。
我嘗試使用下列方式變量:
public function displayPages {
$this->load->model('model_pages');
$this->model_pages->page_list();
echo $this->model_pages->pageListing;
}
,如果我能成功做到這一點我可以在視圖中使用$pageListing
。
現在,我得到以下錯誤:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Main::$pageListing
Filename: core/Model.php
Line Number: 51
就像我之前說的,我知道這是不是最好的做法,在型號代碼HTML,並從控制器呼應它。這純粹是爲了試驗,我只是好奇我怎麼能做這個工作。因爲將來我將不得不與模型中的其他變量一起工作,並且這將會完全相同,除非它們不包含整個html代碼。
另一種思考方式 - 在你的模型中如果沒有結果 - 返回false。那麼在你的控制器中如果$ this-> model_pages-> page_list();返回false - >顯示無結果視圖頁面。這樣,「控制器」就是「控制」正在顯示的視圖。 – cartalot