【问题标题】:How to use variable from routes.php in controller如何在控制器中使用 routes.php 中的变量
【发布时间】:2013-08-04 14:26:44
【问题描述】:

在 CakePHP 中,在 routes.php 文件中重定向了一堆唯一的 URL 名称。 类似这样:

$beautiful_urls[0] = '/view/location-name/image-name.html';
Router::connect($beautiful_urls[0], 
                array('controller' => 'Foo','action' => 'bar',3,60));

我想根据美化名称创建 facebook like 按钮。为此,我需要在Foo 控制器的routes.php 中使用$beautiful_urls 变量。

如何从控制器访问 routes.php 中的变量? 到目前为止,我试图将它与App::use('routes','Config'); 链接,但它不起作用。我还考虑过将值作为操作参数发送,但这似乎不是一个好的做法......我知道将配置文件与控制器的逻辑混合不是一个好主意,但到目前为止我没有更好的主意.

【问题讨论】:

    标签: php variables cakephp controller


    【解决方案1】:

    我不是 cakephp 用户,但简单搜索显示有一个名为 ClassRegistry 的类。

    您可以创建类 BeautifulUrls 并将其存储在那里。根据文档,它是单例的,可以从任何地方访问。

    你也可以让 BeautifulUrls 实现 ArrayAccess 接口,这样你就不必改变你的路线

    【讨论】:

      【解决方案2】:

      我不知道这是否是一个好习惯,但我的解决方案是使用 CakePHP 的 Configure 类。在代码和配置文件中的任何地方都可以直接使用和访问。

      你可以保存键值对

      Configure::write('key','value');
      

      再读一遍

      Configure::read('key');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        • 1970-01-01
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 2014-08-23
        • 2016-09-25
        相关资源
        最近更新 更多