2013-11-25 60 views
0

所以我在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代碼。

+1

另一種思考方式 - 在你的模型中如果沒有結果 - 返回false。那麼在你的控制器中如果$ this-> model_pages-> page_list();返回false - >顯示無結果視圖頁面。這樣,「控制器」就是「控制」正在顯示的視圖。 – cartalot

回答

2

$pageListing從模型返回到控制器。在你的模型函數的末尾添加此行:

return $pageListing; 

編輯:

public function displayPages { 
    $this->load->model('model_pages'); 
    echo $this->model_pages->page_list(); 
    //echo $this->model_pages->pageListing; 
} 

OR

public function displayPages { 
    $this->load->model('model_pages'); 
    $data['pageList'] = $this->model_pages->page_list(); //assign to a variable 
    $this->load->view('pagelist', $data); //is a file pagelist.php in your views folder 

}

現在,如果你做的第二種方式(正確的方式)在你的pagelist.php中,你會得到變量$pageList。然後在您的視圖文件中只有echo $pageList

+0

這不能解決問題。我仍然得到相同的錯誤消息,該變量是未定義的。 – Kevinvhengst

+0

現在有效嗎? –

+0

第二種方案奏效!非常感謝。這真的幫助我理解! Thxx – Kevinvhengst

相關問題