0

コントローラの3つの異なるアクションに同じビューを使用する必要があります。すべてのアクションに対して1つのビューをレンダリングするにはどうすればよいですか?私はグーグルで検索しましたが、何も役に立ちませんでした...そして重要なのはコハナ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 に答える