2011-04-15 134 views
3

我剛開始使用Kohana,並且在渲染簡單視圖時遇到了一些麻煩。我創建了以下控制器:如何在Kohana中渲染視圖

class Controller_Tracer extends Controller { 

    public function action_index() {   
     $this->request->response = View::factory('tracer'); 
    } 

}

然後我創建了一個應用程序/視圖/ tracer.php這樣的觀點:

Tracer view

現在,當我嘗試通過http://mydomain/index.php/tracer/index它只是顯示訪問控制器空白頁。它似乎是找到控制器和視圖,因爲當我更改名稱時有錯誤,但它不顯示任何內容。

有誰知道可能是什麼問題?

+0

您使用的是什麼版本的Kohana? 3.0還是3.1? – 2011-04-15 11:58:27

+0

我建議你檢查網絡服務器的響應(例如通過Firebug)。可能是它的一個5xx錯誤。 – biakaveron 2011-04-15 12:02:44

+0

我正在使用3.1.2 – 2011-04-15 12:04:36

回答

5

在Kohana的3.1,你會改用:

$this->response->body(View::factory('tracer')); 

快速瀏覽一下在文檔的migrating from 3.0 to 3.1

+1

謝謝!這將教會不使用Google的快速鏈接訪問文檔頁面(它目前鏈接到2.0文檔,然後鏈接到3.0文檔但不是3.1)。 – 2011-04-15 12:18:14

+1

好悲傷...改變視圖呈現點發布api?!?!?讓人驚訝... – jondavidjohn 2012-10-22 22:33:19

4

除了davgothic的解決方案,您還可以使用Controller_Template。使用Controller_Template使其更易於管理模板&內容

class Controller_Tracer extends Controller { 

    public $template = 'yourtemplatefile'; // HTML template inside views folder 

    public function before() { 

     parent::before(); 
     $this->template->title = 'My Website'; 

    } 

    public function action_index() {   

     $this->template->content = 'Hello World'; 
    } 

    public function action_trace() { 
     $this->template->content = View::factory('tracer'); 
    } 
} 

內部的意見/ yourtemplatefile.php:

<html> 
    <head> 
    <title><?php echo isset($title) ? $title : ''; ?></title> 
    </head> 

    <body> 

     <h1><?php echo isset($title) ? $title : ''; ?></h1> 

     <?php echo isset($content) ? $content : ''; ?> 

    </body> 
</html> 

內部的意見/ tracer.php:

<p>This is tracer.</p> 

<p>Nulla vitae elit libero, a pharetra augue.</p> 

如果您嘗試訪問http://mydomain/index.php/tracer/index,您會得到:

我的網站

的Hello World

如果您嘗試訪問http://mydomain/index.php/tracer/trace,您將獲得:

我的網站

這是示蹤劑。

Nulla vitae elit libero,pharetra augue。

希望有所幫助!