Yii-views
Yii-ビュー
ビューは、エンドユーザーにデータを表示する役割を果たします。 Webアプリケーションでは、 Views はHTMLおよびPHPコードを含む単なるPHPスクリプトファイルです。
ビューを作成する
ステップ1 *-基本的なアプリケーションテンプレートの「About」*ビューを見てみましょう。
これは、*「About」*ページがどのように見えるかです-
- XSS攻撃を回避するために、エンドユーザーからのデータをエンコードおよび/またはフィルタリングすることが重要です。 * yii \ helpers \ Html
- encode()を呼び出してプレーンテキストをエンコードし、 *yii \ helpers \ HtmlPurifier を呼び出してHTMLコンテンツを常にエンコードする必要があります。
ステップ2 *-「About」*ビューを次のように変更します。
ステップ3 *- *http://localhost:8080/index.php?r = site/about と入力します。 次の画面が表示されます。
- Html :: encode()関数内のJavaScriptコードはプレーンテキストとして表示されることに注意してください。 同じことは、 HtmlPurifier :: process()*呼び出しにも当てはまります。 h1タグのみが表示されています。
ビューはこれらの規則に従います-
- コントローラーによってレンダリングされるビューは、 @ app/views/controllerID フォルダーに配置する必要があります。
- ウィジェットでレンダリングされるビューは、* widgetPath/viewsフォルダー*に配置する必要があります。
コントローラ内で*ビューをレンダリングするには、*次の方法を使用できます-
- * render()*-ビューをレンダリングし、レイアウトを適用します。
- * renderPartial()*-レイアウトなしでビューをレンダリングします。
- * renderAjax()*-レイアウトなしでビューをレンダリングしますが、登録されているすべてのjsおよびcssファイルを挿入します。
- * renderFile()*-指定されたファイルパスまたはエイリアスでビューをレンダリングします。
- * renderContent()*-静的な文字列をレンダリングし、レイアウトを適用します。
別のビュー内の*ビューをレンダリングするには、次の方法を使用することができます-
- * render()*-ビューをレンダリングします。
- * renderAjax()*-レイアウトなしでビューをレンダリングしますが、登録されているすべてのjsおよびcssファイルを挿入します。
- * renderFile()*-指定されたファイルパスまたはエイリアスでビューをレンダリングします。
ステップ4 *-views/siteフォルダー内に、 *_ part1.phpと_part2.php の2つのビューファイルを作成します。
ステップ5 *-最後に、これら2つの新しく作成されたビューを「About」*ビュー内にレンダリングします。
次の出力が表示されます-
ビューをレンダリングするとき、ビュー名またはビューファイルパス/エイリアスとして使用してビューを定義できます。 ビュー名は次の方法で解決されます-
- ビュー名では拡張子を省略できます。 たとえば、aboutビューはabout.phpファイルに対応しています。
- ビュー名が「/」で始まり、現在アクティブなモジュールがフォーラムで、ビュー名がコメント/投稿の場合、パスは@ app/modules/forum/views/comment/postになります。 アクティブなモジュールがない場合、パスは@ app/views/comment/postになります。
- ビュー名が「//」で始まる場合、対応するパスは@ app/views/ViewNameになります。 たとえば、//site/contactは@ app/views/site/contact.phpに対応します。
- ビュー名がcontactで、コンテキストコントローラーがSiteControllerの場合、パスは@ app/views/site/contact.phpになります。
- 価格ビューが商品ビュー内でレンダリングされる場合、価格が@ app/views/invoice/goods.phpでレンダリングされる場合、価格は@ app/views/invoice/price.phpとして解決されます。
ビューでデータにアクセスする
ビュー内のデータにアクセスするには、データを2番目のパラメーターとしてビューのレンダリングメソッドに渡す必要があります。
ステップ1 *- *SiteController の actionAbout を変更します。
上記のコードでは、2つの変数 $ email と $ phone を渡して、 About ビューでレンダリングします。
- ステップ2 *-aboutビューのコードを変更します。
ステップ3 *-WebブラウザにURL *http://localhost:8080/index.php?r = site/about を入力すると、次のように表示されます。