2011-07-20 65 views
0

我有一個模型從我的數據庫中提取一個我希望能夠在我的視圖中顯示的列表。將模型中的值傳遞給Kohana中的視圖3

這個模型看起來是這樣的:

Class Model_services extends Model 
{ 
    public function get_services_list() { 
    $result = DB::select('*')->from('services') 
      ->execute() 
      ->as_array(); 
      return $result; 
    } 
} 

我的控制器看起來是這樣的:

public function action_index() 
{ 
    $this->template->title = "services"; 
    $this->template->header = View::factory('header'); 
    $services     = Model::factory('services'); 
    $this->template->content = View::factory('services') 
             ->bind('result',$result) 
    $this->template->footer = View::factory('footer');   
} 

如何呈現在視圖從模型中的變量?

回答

0

在如下services.php使用代碼;)

foreach($result as $item) { 
    echo Debug::vars($item); 
    // print_r($item); //alternatively you can try this also, if Debug::vars() causes pain 
} 
+0

感謝Kowser快速回復,我使用的模板控制器,現在它給我這個錯誤「ErrorException [2]:htmlspecialchars()[function.htmlspecialchars]:無效的多字節序列在參數〜SYSPATH \ classes \ kohana \ debug.php [311]「我仍然不知道我做錯了什麼 – user731144

+0

從我的經驗,我可以理解的事情$ item包含了一些具有unicode數據的東西,從而使該unicode數據成爲多字節序列。你可以嘗試使用print_r($ item)而不是Debug :: vars();作爲你的 – Kowser

+0

,它只是空,它更好地調查你的模型。至少它不應該是空的,這是我的理解。 – Kowser

2

您還沒有實際上被稱爲模型法或傳遞的變量從控制器類的觀點。

更改此:

$services = Model::factory('services'); 
$this->template->content = View::factory('services') 
            ->bind('result',$result); 

要這樣:

$services = Model::factory('services')->get_services_list(); 
$this->template->content = View::factory('services') 
            ->bind('result', $services); 

的位置變化是:

  • 調用用於從數據庫中提取相關行的方法。
  • 使用$services變量並將其綁定到$result,您將在視圖中使用它。

在您的視圖中,您可以在參考$result變量時提取值。

要查看你從模型中得到了什麼,在你看來測試:

echo Debug::vars($result); 
相關問題