Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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
Php 重载$this->;布局()->;在视图文件中_Php_Zend Framework2 - Fatal编程技术网

Php 重载$this->;布局()->;在视图文件中

Php 重载$this->;布局()->;在视图文件中,php,zend-framework2,Php,Zend Framework2,我试图修改ZF2中需要在布局中使用的选项数组。在这种特殊情况下,它是一个文件名 当我像字符串那样做时,我没有问题 <?php $this->layout()->javaScripts = "assets/js/js-file.js"; ?> 正确的方法是什么?或者,如果没有办法做到这一点,为什么我不应该呢 我尝试RTM,但运气不佳。请查看 javaScripts不是公共属性——它是通过“魔术”方法实现的 或者试试这个 <?php $this->layout

我试图修改ZF2中需要在布局中使用的选项数组。在这种特殊情况下,它是一个文件名

当我像字符串那样做时,我没有问题

<?php $this->layout()->javaScripts = "assets/js/js-file.js"; ?>
正确的方法是什么?或者,如果没有办法做到这一点,为什么我不应该呢

我尝试RTM,但运气不佳。

请查看

javaScripts不是公共属性——它是通过“魔术”方法实现的

或者试试这个

<?php 
$this->layout()->javaScripts = array();
$this->layout()->javaScripts[] = "assets/js/js-file.js";

如果是$zebraScripts,我需要做同样的事情吗?你知道这在源代码中是如何实现的吗@Vasil Vancuck当然可以,但它不允许我在控制器级别设置一个选项数组,在视图级别修改它,这就是我试图修改它的地方,我的意思是添加到我的选项为什么?您只需要在向数组添加元素之前分配数组-first write=array(),并且只在后期将元素推送到数组中-我是关于HeadScriptHelper的第一个代码+1变体的。您还可以查看,因为将脚本放在html末尾是一种很好的做法
Notice: Indirect modification of overloaded property Zend\View\Model\ViewModel::$javaScripts has no effect in
<?php 
$this->layout()->javaScripts = array();
$this->layout()->javaScripts[] = "assets/js/js-file.js";
<?php 
$this->layout()->javaScripts = array("assets/js/js-file.js");