Как передать данные контроллера в файл JS в CakePHP 3.0

1

В CakePHP 2.0 я использовал приведенную ниже ссылку для передачи данных контроллера в файл js. Тем не менее, я могу больше использовать этот метод, поскольку CakePHP 3.0 удалил js-помощник.

Есть ли у меня новая технология для передачи данных контроллера в файл js или альтернативный метод помимо использования js-помощника со ссылкой ниже?

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).';'); ?>
Теги:
cakephp
cakephp-3.0

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню