我需要对控制器中的三个不同操作使用相同的视图。如何为所有操作渲染一个视图?我用Google搜索但没有发现任何有用的东西......重要的是我使用Kohana 3.0.11
答案 0 :(得分:2)
在每个动作中创建视图有什么不好?
action_1()
{
$view = View::factory('something');
// rest of code
}
action_2()
{
$view = View::factory('something');
// rest of code
}
action_3()
{
$view = View::factory('something');
// rest of code
}
或者,您可以在操作之前将视图存储在基本控制器中,并在子控制器中访问它:
class Controller_Base
{
protected $_view;
public function before()
{
$this->_view = View::factory('something');
}
}
class Controller_Yours exnteds Controller_Base
{
public function action_1()
{
// use $this->_view to get it
}
public function action_2()
{
// use $this->_view to get it
}
public function action_3()
{
// use $this->_view to get it
}
}
答案 1 :(得分:0)
您可以创建方法并返回视图
...
private function myView($param1, $param2=NULL) {
return View::factory('myView')
->bind('param1', $param1)
->bind('param2', $param2);
}
public function action_view1() {
return $this->myView('param1');
}
public function action_view2() {
return $this->myView('param1', 'param2');
}