I just started using Kohana and I'm having some trouble rendering a simple view. I created the following controller:
class Controller_Tracer extends Controller { public function action_index() { $this->request->response = View::factory('tracer'); } }
Then I've created this view in application/views/tracer.php:
Tracer开发者_开发技巧 view
Now when I try to access the controller via http://mydomain/index.php/tracer/index it's just displaying a blank page. It seems to be finding both the controller and view since when I change the names there are errors but it's just not displaying anything.
Does anybody know what could be the issue?
In Kohana 3.1 you would instead use:
$this->response->body(View::factory('tracer'));
Have a quick look over the docs for migrating from 3.0 to 3.1.
Besides davgothic's solution, you also can use Controller_Template. Using Controller_Template make it easier to manage template & content
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>
If you try to access http://mydomain/index.php/tracer/index, you will get:
My Website
Hello World
If you try to access http://mydomain/index.php/tracer/trace, you will get:
My Website
This is tracer.
Nulla vitae elit libero, a pharetra augue.
Hope that helps!
精彩评论