【问题标题】:How to set the content of the $script_for_layout in cakephp?如何在 cakephp 中设置 $script_for_layout 的内容?
【发布时间】:2010-04-26 02:57:12
【问题描述】:

我正在以自学的方式学习 cakephp,我是一个完整的新手 :) 我正在创建一个简单的应用程序。一些逻辑工作,所以现在我将深入设计视图和布局。 我阅读了文档和教程,但找不到在哪里设置 $script_for_layout 的内容。 特别是我想设置一个 $html->css 来在页面中创建指向样式表的链接。我发现我可以直接在布局模板中执行此操作,但我想在样式表的所有页面/视图/布局中创建相同的链接,所以我希望有一种简单的方法,并避免在所有布局中执行此操作和/或控制器

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

    您可以使用JavascriptHelper 执行此操作。通过控制器的$helpers 数组加载帮助程序。

    # In your controller
    class Things extends AppController {
      $helpers = array( 'Javascript' );
    
      # ... your custom controller code ... 
    
      # OR
      public method controllerAction( ... ) {
        $helpers[] = 'Javascript';
    
        # ... additional action code ...
      }
    }
    
    # In your view
    $javascript->link( 'my_script', false );
    

    在视图代码中,false 参数将/js/my_script.js 添加到由$scripts_for_layout 变量加载的脚本集。为 CSS 做同样的事情,关键是相同的 $inline 参数。将该值设置为 false,CSS 文件也会加载到头部:

    $Html->css( 'view_css', 'stylesheet', array( "media" => "all" ), false );
    

    查看general helper infoJavascript helper 的文档。

    【讨论】:

    • 谢谢,现在很清楚了。如果我不添加 false 参数意味着什么?这是否意味着脚本或css链接将插入到视图代码中的位置? (我猜是这样,但我没有直接在文档中找到)
    • 没错。它将添加脚本“内联”。换句话说,就在视图中的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多