如何在控制器中使用routes.php中的变量

时间:2013-08-03 10:18:51

标签: php variables cakephp controller

在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按钮。为此,我需要在$beautiful_urls控制器的routes.php中使用Foo变量。

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

2 个答案:

答案 0 :(得分:0)

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

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

此外,您可以使BeautifulUrls实现ArrayAccess接口,这样您就不必更改路径

答案 1 :(得分:0)

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

您可以使用

保存键值对
Configure::write('key','value');

并使用

再次阅读
Configure::read('key');