Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP:首先加载视图中附加到块的内容_Php_Cakephp - Fatal编程技术网

CakePHP:首先加载视图中附加到块的内容

CakePHP:首先加载视图中附加到块的内容,php,cakephp,Php,Cakephp,我使用视图块来允许各个视图添加特定于这些视图的脚本和样式表。默认情况下,到处使用的资源都包含在布局中。给你 一切都按照描述进行,但是在我的视图中附加的内容被添加到默认块内容之前,即使我使用$this->append'block name'。经过一番激化,我推断视图实际上是在布局之前首先被引用的。因此,我在视图中加载的脚本没有附加任何内容。之后,布局的脚本被追加 通过在块外删除全局脚本,我能够解决这个问题。但我不喜欢这种方法,有几个原因。将来,我可能希望我的视图能够覆盖某些内容。而且,这似乎是错误

我使用视图块来允许各个视图添加特定于这些视图的脚本和样式表。默认情况下,到处使用的资源都包含在布局中。给你

一切都按照描述进行,但是在我的视图中附加的内容被添加到默认块内容之前,即使我使用$this->append'block name'。经过一番激化,我推断视图实际上是在布局之前首先被引用的。因此,我在视图中加载的脚本没有附加任何内容。之后,布局的脚本被追加

通过在块外删除全局脚本,我能够解决这个问题。但我不喜欢这种方法,有几个原因。将来,我可能希望我的视图能够覆盖某些内容。而且,这似乎是错误的,与视图块的用途背道而驰

我的问题是: 1.我描述的行为是否是预期的行为?
2.是否有更好的方法来管理从视图附加的脚本的脚本依赖性

我认为块不应该在布局中定义,这不是它想要的方式,它应该在视图或元素中定义,由其他视图或元素附加,然后由布局或视图获取。

但文档明确指出,它的主要用途之一是如果用于包含脚本和其他资源。。。而这些几乎总是属于布局,对吗?这一点得到了以下事实的支持:默认的.ctp布局是以这种方式设置的。布局是在查看之后呈现的,因此您不能在布局中定义块,如果您只想附加一些js或css文件,为什么不试试$This->Html->script'carousel',array'inline'=>false;,如前所述?如果这样做,视图的脚本不会在布局中定义的全局样式之前添加吗?这不是在用cakePHP内置的magic->script块重现我已经遇到的问题吗?为了让您的建议发挥作用,我必须在每个视图中一次又一次地添加所有脚本。正当