1

ここで Yii を使用します。しかし、おそらく、より一般的なアプローチが適している可能性があります。

「シアター」というコントローラー/ビューがあるとしましょう。

Theatre 内では、いくつかの特定の劇場に関するいくつかの静的ページを表示したいと考えています。

次の点を考慮してください (ドキュメントが回答していないこと):

1) 静的ページは、このアプリケーションの他のビューと同じレイアウトを既に共有しています * Theatre index.php * (たとえば、各特定の劇場へのリンクを含む cmenu を含めることができます) は、すでにmain.php レイアウトの影響を受けています。

2) index.php には、すべての特定のページにある HTML があります。 また、すべての特定の劇場ページで共有されるいくつかの一般的な html 要素としての劇場 index.php 。

質問: メニューで特定のシアターを選択するたびに、これらの特定の静的ページをどのようにレンダリングする必要がありますか?

私が最初に考えたのは、何らかの方法で index.php ビューを使用し、内部で $this->renderPartial('specificTheaterHere'); を呼び出すことでした。しかし、renderPartial 内には変数が必要ですが、その変数をどこで変更する必要があるため、このアプローチは機能しないと思います。静的ページごとにコントローラー メソッドを用意し、そこに部分ビューの変数を渡す必要がありますか? これは理にかなっていますか?

この素晴らしい記事を読みましたが、それでも疑問は残ります。 http://www.yiiframework.com/wiki/22/how-to-display-static-pages-in-yii/

注: ここで静的ページの LAYOUT を作成しても意味がありません。これらのページは既に main.php レイアウトを共有しているためです。

前もって感謝します

4

1 に答える 1

3

[更新] Yii のレイアウトもご覧ください。

それは必要ありません。actions() メソッドを使用して静的ページをレンダリングできます。Yii の新規インストールでは、SiteController::actions() でそれを見つけることができます。

ルート内:

'page/<view:\w+>' => 'site/page',

SiteController で

public function actions() {
  return array(
    'page' => array(
      'class' => 'CViewAction',
      'layout' => 'my_layout',
    ),
 );
}

ここで完全なドキュメントを確認してください

/views/site/my_static_page.php の静的ページは次の方法でアクセスできます: http://mysite.com/page/my_static_page

ここで完全なドキュメントとチュートリアルを確認してください: http://www.yiiframework.com/wiki/22/how-to-display-static-pages-in-yii/

于 2012-06-23T22:54:57.123 に答える