我正在使用Yii Framework。在视图main.php中,有一个对$ content块的引用
<?php echo $content; ?>
我无法在模型中的任何地方或演示项目的其他地方找到它。有人能说清楚这个吗?或者可能是这个变量从未声明过?我还没有修改过演示项目。
答案 0 :(得分:2)
布局文件中的$ content值包含指定为render命令的第一个属性的模板的呈现内容。 (它是自动创建的,因此我不会将“content”用作附加变量名称,否则可能会导致混淆。)您在render语句中作为附加数组参数传递的变量可供您调用的模板使用,而不是到布局。
如果您有嵌套布局,则$ content的值会从父级转换为子级。
答案 1 :(得分:2)
所有控制器都派生自CController
级。 CController
有一个名为render
的函数,您可以将其称为渲染视图。它的工作原理如下:
beforeRender
被召唤。renderPartial
,其输出存储在$output
。 renderFile
,其参数名为content
,如下所示:
$ this-&gt; render(layoutFile,array('content'=&gt; $ output));
所以$content
来自这里。您可以在此处查看实际代码:Source code,以及此处的文档:Documentation
答案 2 :(得分:0)
我认为它是从调用此视图的控制器设置的。
在控制器中查找类似以下内容的内容
$this->render('main', array('content'=>"something here"));
答案 3 :(得分:0)
从Yii文档中找到答案,
例如,布局可能包含页眉和页脚,并嵌入 介于两者之间,如下:
......header here......
<?php echo $content; ?>
......footer here......
其中$ content存储视图的渲染结果。
确实是其中一个视图中的所有文本(在我的例子中是index.php)。 $ content基本上是视图的内容。它没有在任何地方声明,它是默认的。正如答案所说,你不应该在你的代码中使用declare / use $ content。