0

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

4

2 回答 2

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
   }
}
于 2012-08-08T14:43:54.407 回答
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');
}
于 2012-09-01T04:28:15.670 回答