如何在Kohana中渲染视图

时间:2011-04-15 11:36:00

标签: view controller kohana-3

我刚刚开始使用Kohana,我在渲染简单视图时遇到了一些麻烦。我创建了以下控制器:

class Controller_Tracer extends Controller {

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

}

然后我在application / views / tracer.php中创建了这个视图:

Tracer view

现在,当我尝试通过http://mydomain/index.php/tracer/index访问控制器时,它只显示一个空白页面。它似乎找到了控制器和视图,因为当我更改名称时会出现错误,但它只是没有显示任何内容。

有人知道可能是什么问题吗?

2 个答案:

答案 0 :(得分:5)

在Kohana 3.1中,您将使用:

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

快速查看migrating from 3.0 to 3.1的文档。

答案 1 :(得分: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');
    }
}

Inside views / 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>

Inside views / 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。

希望有所帮助!