2

(Yii Frameworkで)1つのコントローラーにのみアクセスしながら、複数のコントローラーメソッドをレンダリングするにはどうすればよいか疑問に思いました。したがって、たとえば、ブラウザで「controller / SiteController.php」(メソッド「actionIndex」)が呼び出されます。

  • Witchは最初に"controller/ UserController.php"の出力をレンダリングします(メソッド "actionDetails"-> "views / user / details.php")。
  • その後、ページの残りの部分で「controller / SiteController.php」(メソッド「actionIndex」->「views / site / index.php」)の出力もレンダリングします。

誰かが助けてくれることを願っていますか?私はまだYiiに少し慣れていません。前もって感謝します。

4

1 に答える 1

3

それは可能です、結局のところ、アクションは関数でもありますね..だから私たちはそれを呼び出すことができます..

レンダリング後の最初のアクションで、目的のコントローラー(この場合はSiteController)のインスタンスを作成し、そのメンバー関数(この場合)を呼び出しますactionIndex()

Yii::import('application.controllers.SiteController');
$controller_instance = new SiteController("Site"); //string $id, CWebModule $module=NULL
$controller_instance->actionIndex();

コントローラ構成のドキュメント

理想的には、mvcのプラクティスとして、これを行うべきではありません。代わりに、ページから個別のajaxリクエストを作成して、個別のアクションからコンテンツを取得します。

于 2012-08-12T13:20:08.500 に答える