Javascript CakePHP:在视图的头文件中包含js文件
cakephp文档说: 默认情况下,脚本标记将添加到文档内联。如果通过将$options['inline']设置为false来覆盖此选项,则脚本标记将添加到脚本块中,您可以在文档的其他位置打印该脚本块 因此,在我的视图文件(.ctp)中,我有: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
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')); ?>