如何在CakePHP 3.0中将控制器数据传递给JS文件

时间:2015-07-14 01:40:23

标签: php cakephp cakephp-3.0

在CakePHP 2.0中,我使用下面的链接将控制器数据传递给js文件。但是,我可以再使用这种方法,因为CakePHP 3.0已经删除了js helper。

我是否有新技术将控制器数据传递给js文件或使用js helper和下面的链接旁边的替代方法?

http://www.php-dev-zone.com/2014/01/how-to-pass-controller-data-to-js-file.html

相关代码:

public function beforeRender()
{
    // We are Setting the jsvariables array which holds the
    // variables that will be used in js files.
    $this->set('jsVars', $this->_jsvariables);
}
<?php echo $this->Html->scriptBlock('var jsVars = '.$this->Js->object($jsVars).';'); ?>

1 个答案:

答案 0 :(得分:3)

只需检查JsHelper::object()方法正在执行的操作,然后手动执行。

<强> https://github.com/cakephp/.../2.7.0/lib/Cake/View/Helper/JsBaseEngineHelper.php#L127

它基本上只是对json_encode()的调用,所以只需相应地替换辅助方法调用:

<?php echo $this->Html->scriptBlock('var jsVars = ' . json_encode($jsVars) . ';'); ?>