Cakephp 如何从视图标题部分的自定义帮助器加载css/js文件?

Cakephp 如何从视图标题部分的自定义帮助器加载css/js文件?,cakephp,helpers,cakephp-2.9,Cakephp,Helpers,Cakephp 2.9,我正在开发一个自定义帮助程序,我希望每当我使用这个帮助程序时,它都应该在该特定视图的头部分加载相关的css/js文件 例如,如果我在“abc”视图中使用“XyzHelper”,XyzHelper应该在abc视图的头部分加载css/js文件,以此类推 这是我的助手代码:- App::uses('AppHelper', 'View/Helper'); class XyzHelper extends AppHelper { public function show() { $h

我正在开发一个自定义帮助程序,我希望每当我使用这个帮助程序时,它都应该在该特定视图的头部分加载相关的css/js文件

例如,如果我在“abc”视图中使用“XyzHelper”,XyzHelper应该在abc视图的头部分加载css/js文件,以此类推

这是我的助手代码:-

App::uses('AppHelper', 'View/Helper');
class XyzHelper extends AppHelper {
    public function show() {
        $html = new HtmlHelper(new View());
        echo $html->css('custom',array('inline'=>true));
        echo $html->script('custom.min',array('inline'=>true));                
        return "<div style='background-color:rgb(200,0,0);padding:20px;color:white;'>Hello World</div>";
    }
}
App::使用('AppHelper','View/Helper');
类XyzHelper扩展了AppHelper{
公共活动展览({
$html=newhtmlhelp(newview());
echo$html->css('custom',array('inline'=>true));
echo$html->script('custom.min',array('inline'=>true));
返回“你好世界”;
}
}
上面的代码正在加载css/js文件,但不在任何视图的标题部分

我在助手中尝试了append('css')方法,但似乎也不起作用。它说“append”不存在

$this->append('css','<link_to_css_file>');
$this->append('css','');
尝试将选项inline更改为false。如文件所述:

如果$options参数中的键“inline”设置为false,则链接标记将添加到css块中,您可以在文档的头标记内打印该块


您可以使用助手回调来执行此操作:

App::uses('AppHelper', 'View/Helper');

class XyzHelper extends AppHelper {

    public $helpers = array('Html');

    public function beforeRenderFile($viewFile)
    {
        echo $this->Html->css('custom', array('inline'=>true));
        echo $this->Html->script('custom.min', array('inline'=>true));                
        echo "<div style='background-color:rgb(200,0,0);padding:20px;color:white;'>Hello World</div>";
    } 
}
App::使用('AppHelper','View/Helper');
类XyzHelper扩展了AppHelper{
public$helpers=array('Html');
公共函数beforeRenderFile($viewFile)
{
echo$this->Html->css('custom',array('inline'=>true));
echo$this->Html->script('custom.min',array('inline'=>true));
呼应“你好世界”;
} 
}
另见


我已经试过了,但现在它没有打印链接标签。。。但是,这个问题仅适用于自定义帮助程序。您应该使用
public$helpers=array('Html')在帮助程序中加载
HtmlHelper
。然后可以像
$this->Html->css('custom',array('inline'=>true))那样使用它在助手方法中。此外,您的助手函数不应该呼出内容,而应该返回!