CakePHP - 从控制器的beforeRender回调中将“JS”文件添加到“脚本”块

时间:2018-06-01 02:16:21

标签: cakephp

是否可以添加一个js文件来从控制器beforeRender()查看?这是可取的吗?如果没有,如果我不能使用View,我应该只使用事件系统吗?

基本上我的想法是让我创建的插件将一个JS文件注入Theme插件的“script”块中(单独的插件)

1 个答案:

答案 0 :(得分:0)

经过多次尝试,我决定通过并使用事件系统。我这样做了:

<?php

namespace App\Event;

use Cake\Event\EventListenerInterface;    

class ApplicationListener implements EventListenerInterface {

    public function implementedEvents() {
        return [
            'View.beforeLayout' => 'injectJsFile'
        ];
    }

    public function injectJsFile(Event $event, $layoutFile){
      $event->getSubject()->Html->script('myscript', ['block' => 'script']);
    }

}

这对我有用,但如果有控制器方式或更好的事件系统方式,我很乐意听到它。