ホームページ  >  記事  >  PHPフレームワーク  >  Yii 実装はレイアウト ファイルをロードしません

Yii 実装はレイアウト ファイルをロードしません

王林
王林オリジナル
2019-12-24 14:00:532508ブラウズ

Yii 実装はレイアウト ファイルをロードしません

Yii フレームワークは、テンプレートをレンダリングするときにデフォルトでレイアウトをレンダリングします。新しく作成されたプロジェクトには、3 つのデフォルト レイアウトも含まれています: main.phpcolumn1 .phpcolumn2.php、およびパブリック コントローラー Controller.php (コンポーネント ディレクトリ内) がデフォルトで作成され、デフォルトの SiteController.php は継承された Controller.php です。このコントローラーはレイアウト ファイルを column1.php として指定します。

まず、テンプレートをレンダリングするために必要な手順を見てみましょう:

1. コントローラーに $this->render('index' を渡します) ) で、index.php ビュー ファイルのレンダリングを開始します;

2. インデックスをレンダリングするときは、まず index.php 内の PHP スクリプトを解析し、解析した結果を保存します。 $content 変数に;

3. システムは、レイアウト ファイルが指定されているかどうかを確認します。まず、コントローラーの $this->layout 属性を探します。この値が空でない場合、render() はレイアウト ファイルをレンダリングし、$content 値をレイアウト ファイル内の変数として使用します。つまり # を使用します。レイアウト ファイル内の ##79c0f0195a0f674f5ee807504d2f5289 は、解析されたコンテンツをindex.php に出力でき、このレイアウトは # でデフォルトで column1.php として指定されます。 ##Controller、このレイアウトでは、プロジェクトのデフォルトのレイアウト ファイル main.php がネストされています。 4. コントローラーがレイアウト属性を指定しない場合、コントローラーはプロジェクト設定でレイアウト属性 (

main.php

のレイアウト属性) を検索します。この属性は手動で指定する必要はありません。デフォルトは views/layouts/main.php ファイルです。 render を通じてこのレイアウト ファイルを解析し、index.php のコンテンツを $content 変数に渡します。 つまり、デフォルトの状況によれば、ビューをレンダリングするには 3 つのファイル、つまり

index.php

column1.php、# をレンダリングする必要があります。 ##メイン .phpレイアウトモードに慣れていない人にとっては、間違いなく手間が増えるでしょう。

Close メソッド:

ただし、レイアウト モードをオフにするのは非常に簡単です。Controller

layout プロパティを設定できます。 falseまでで十分です。 例は次のとおりです:

SiteController extends Controller{
 public $layout=false; //重写这个属性就可以了
//其他方法
}

推奨される関連記事とチュートリアル:

yii チュートリアル

以上がYii 実装はレイアウト ファイルをロードしませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。