我刚刚开始使用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访问控制器时,它只显示一个空白页面。它似乎找到了控制器和视图,因为当我更改名称时会出现错误,但它只是没有显示任何内容。
有人知道可能是什么问题吗?
答案 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。
希望有所帮助!