Yii 프레임워크는 템플릿을 렌더링할 때 기본적으로 레이아웃을 렌더링합니다. 새로 생성된 프로젝트에는 main.php
, column1.php
, column2.php
, 공용 컨트롤러 Controller.php
가 기본적으로 (구성 요소 디렉터리에) 생성되고 기본 SiteController.php
는 다음과 같습니다. 상속됨 이 Controller.php, 이 컨트롤러는 레이아웃 파일을 column1.php
로 지정합니다. main.php
、column1.php
、column2.php
,并且默认创建了一个公共控制器Controller.php
(在components目录下),默认的SiteController.php
是继承的这个Controller.php,这个控制器指定了布局文件为column1.php
。
首先让我们看看渲染一个模板需要经过哪些步骤:
1、控制器中通过 $this->render('index')
来开始渲染index.php视图文件;
2、在渲染index时,首先将index.php
中的php脚本解析完毕,然后将解析的结果保存到$content
变量里;
3、系统检查是否指定布局文件,先找控制器的$this->layout
属性,如果这个值不为空的话,则再render()
渲染这个布局文件,将$content
值作为布局文件中的变量,也就是在布局文件中使用b8cb21d4be6121876b9b5e4bbf1ecc1f
即可输出index.php里解析好的内容,而这个layout在Controller
中默认指定为了column1.php
,在这个布局里,又嵌套了项目默认的布局文件main.php。
4、如果控制器没有指定layout属性,则会去找项目配置中的layout属性,也就是main.php
中的layout属性,而这个属性不需要人工指定,默认就是views/layouts/main.php
文件。通过render
解析这个布局文件,将index.php的内容作为$content变量穿进去。
也就是说,按照默认情况,我们渲染一个视图需要渲染3个文件,分别是index.php
、column1.php
、main.php
。
对于不习惯布局模式的人来说,这无疑增加了麻烦。
关闭方法:
不过关闭布局模式很简单,你可以将Controller
中的 layout
属性设置为false
$this->render('index')
로 시작하세요. index.php 보기 파일 렌더링 2. index를 렌더링할 때 먼저 index.php
에서 php 스크립트를 구문 분석한 다음 구문 분석된 결과를 $content
In에 저장합니다.
$this->layout
속성을 찾습니다. render( )이 레이아웃 파일을 렌더링하고 $content
값을 레이아웃 파일의 변수로 사용합니다. 즉, b8cb21d4be6121876b9b5e4bbf1ecc1f 는 index.php에 구문 분석된 내용을 출력할 수 있으며, 이 레이아웃은 <code>Controller
에서 기본적으로 column1.php
로 지정됩니다. 중첩되어 있습니다. 프로젝트 기본 레이아웃 파일인 main.php가 설치되어 있습니다. 🎜🎜4. 컨트롤러가 레이아웃 속성을 지정하지 않으면 main.php
의 레이아웃 속성인 프로젝트 구성에서 레이아웃 속성을 찾습니다. 수동으로 지정됩니다. 기본값은 views/layouts/main.php
파일입니다. render
를 통해 이 레이아웃 파일을 구문 분석하고 index.php의 내용을 $content 변수에 전달합니다. 🎜🎜즉, 기본적으로 뷰를 렌더링하려면 세 개의 파일, 즉 index.php
, column1.php
및 main.php를 렌더링해야 합니다.
. 🎜🎜레이아웃 모드에 익숙하지 않은 사람들에게는 의심할 여지없이 문제가 증가할 것입니다. 🎜🎜닫기 방법:🎜🎜하지만 레이아웃 모드를 끄는 것은 매우 간단합니다. Controller
의 layout
속성을 false로 설정할 수 있습니다. 그렇습니다. 🎜🎜예는 다음과 같습니다: 🎜<pre class="brush:php;toolbar:false">SiteController extends Controller{
public $layout=false; //重写这个属性就可以了
//其他方法
}</pre>🎜추천 관련 기사 및 튜토리얼: 🎜yii tutorial🎜🎜
위 내용은 Yii 구현이 레이아웃 파일을 로드하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!