如何在控制器中呈现另一个动作的视图?我使用Kohana 3.0.11

时间:2012-08-08 12:36:37

标签: model-view-controller kohana kohana-3

我需要对控制器中的三个不同操作使用相同的视图。如何为所有操作渲染一个视图?我用Google搜索但没有发现任何有用的东西......重要的是我使用Kohana 3.0.11

2 个答案:

答案 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');
}