在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).';'); ?>
答案 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) . ';'); ?>