我使用的是Yii框架,在main.php视图中,有一个对$content块的引用
<?php echo $content; ?>
我在模型或演示项目的任何地方都找不到它。有人能解释一下吗?或者这个变量从来没有声明过?我还没有修改过演示项目。
qrjkbowd1#
布局文件中的$content值包含模板的渲染内容,该模板被指定为render命令的第一个属性。(它是自动创建的,因此我不会使用“content”作为额外的变量名,否则可能会引起混淆。)在render语句中作为额外数组参数传递的变量可用于正在调用的模板,而不是布局。如果有嵌套布局,$content的值将从父级级联到子级。
fcg9iug32#
所有的控制器都是从CController类派生的。CController有一个名为render的函数,你可以调用它来渲染你的视图。它的工作原理如下:1.调用beforeRender。
CController
render
beforeRender
renderPartial
$output
renderFile
content
$content
tzdcorbm3#
从Yii文档/布局中找到答案,例如,布局可能包含页眉和页脚,并将视图嵌入页眉和页脚之间,如下所示:
......header here...... <?php echo $content; ?> ......footer here......
其中$content存储视图的呈现结果。$content实际上是一个视图中的所有文本(在我的例子中是index.php)。$content基本上取视图的内容。它没有在任何地方声明,并且是默认的。正如答案所说,你不应该在你的代码中使用declare/use $content。
hwamh0ep4#
我认为它是从调用此视图的控制器设置的。在控制器中查找类似以下内容的内容$this->render('main', array('content'=>"something here"));
$this->render('main', array('content'=>"something here"));
4条答案
按热度按时间qrjkbowd1#
布局文件中的$content值包含模板的渲染内容,该模板被指定为render命令的第一个属性。(它是自动创建的,因此我不会使用“content”作为额外的变量名,否则可能会引起混淆。)在render语句中作为额外数组参数传递的变量可用于正在调用的模板,而不是布局。
如果有嵌套布局,$content的值将从父级级联到子级。
fcg9iug32#
所有的控制器都是从
CController
类派生的。CController
有一个名为render
的函数,你可以调用它来渲染你的视图。它的工作原理如下:1.调用
beforeRender
。renderPartial
在视图文件上被调用,其输出存储在$output
中。1.在布局文件上调用
renderFile
,使用名为content
的参数,如下所示:这个函数是一个数组,数组中的元素是一个数组,数组中的元素是一个数组。
所以
$content
来自这里。你可以在这里看到实际的代码:源代码和文档位于:文件tzdcorbm3#
从Yii文档/布局中找到答案,
例如,布局可能包含页眉和页脚,并将视图嵌入页眉和页脚之间,如下所示:
其中$content存储视图的呈现结果。
$content实际上是一个视图中的所有文本(在我的例子中是index.php)。$content基本上取视图的内容。它没有在任何地方声明,并且是默认的。正如答案所说,你不应该在你的代码中使用declare/use $content。
hwamh0ep4#
我认为它是从调用此视图的控制器设置的。
在控制器中查找类似以下内容的内容
$this->render('main', array('content'=>"something here"));