Javascript CakePHP:在视图的头文件中包含js文件

Javascript CakePHP:在视图的头文件中包含js文件,javascript,php,jquery,cakephp,Javascript,Php,Jquery,Cakephp,cakephp文档说: 默认情况下,脚本标记将添加到文档内联。如果通过将$options['inline']设置为false来覆盖此选项,则脚本标记将添加到脚本块中,您可以在文档的其他位置打印该脚本块 因此,在我的视图文件(.ctp)中,我有: echo$this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',数组('inline'=>'false') 在我的布局中,在head标签中: ec

cakephp文档说:

默认情况下,脚本标记将添加到文档内联。如果通过将$options['inline']设置为false来覆盖此选项,则脚本标记将添加到脚本块中,您可以在文档的其他位置打印该脚本块

因此,在我的视图文件(.ctp)中,我有:

echo$this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',数组('inline'=>'false')

在我的布局中,在head标签中:

echo$this->fetch('script')

但是脚本标记是内联打印的,而不是在头部打印的。如果我错过了视图文件中的回音行,脚本将不会在html中打印出来

任何帮助都将受到感激


PAE

引号中有
false
,因此PHP将其视为
字符串,而不是
布尔值。应该是:

echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', array('inline' => false));

为什么你会有很多属性??只需使用url

echo $this->Html->script('http://code.jquery.com/jquery.min.js');

只需将其放入您的视图ctp文件中。:)


我想在此展开并提及几件事情

内联脚本

这将以内联方式打印脚本标记,这并不总是需要的

<?php echo $this->Html->script('script.name'); ?>

非内联脚本

这将把脚本放在布局文件中放置$This->fetch('script')的位置,通常放在页面的头部。(正如ub3rst4r所指出的,您将false作为字符串传递)


块脚本

对于许多人来说,这可能是一个更有用的版本,您可以在任何布局文件中放置一个脚本块(根据您的实际需要)。我会给你看一个例子,叫它ScriptBottonGo,在我身体结束之前

<?php echo $this->fetch('scriptBottom'); ?>

然后可以像这样将块传递给脚本方法

<?php $this->Html->script('script.name', array('block' => 'scriptBottom')); ?>


希望这对cakephp3而不是array('inline'=>false)有所帮助。如果有人像我一样寻找答案,你应该使用array('block'=>true)。您不需要在ctp文件的顶部回显脚本,只需将脚本放在php语法中即可


在视图中使用此选项将以内联方式打印它,视图将位于头标签之外,OP不需要此选项。我盯着它看了好几个小时!我真的,真的应该更清楚,不是吗?非常感谢。是的,确实有用。谢谢我发现CakePHP这本书在这方面有点薄弱。你甚至不需要
回显脚本,因为它在
scriptBottom
的地方被缓冲和回显。只是测试了这个,它工作了,相应地更新了答案,干杯。
<?php echo $this->fetch('scriptBottom'); ?>
<?php $this->Html->script('script.name', array('block' => 'scriptBottom')); ?>