CakePHP路由& HTML帮助程序链接歧义

时间:2013-04-24 18:23:35

标签: cakephp hyperlink routing cakephp-2.0 ambiguity

我有一个使用CakePHP 2.x的网站。有一个后端界面,其中操作使用标准的Cake布局和视图,但是一些操作也作为“对话框”(相同的功能,只是可放在iframe中的布局)向前端用户公开。

app/Config/router.php我添加了以下内容:

Router::connect('/dialog/:controller', array('action' => 'index'));
Router::connect('/dialog/:controller/:action');
Router::connect('/dialog/:controller/:action/**');

这样可以正常工作,但在尝试使用HTML帮助程序的link()方法时会出现问题。如果我尝试创建如下链接:

$this->Html->link('edit account', array('controller' => 'users', 'action' => 'edit'));

我得到以下内容:

<a href="/dialog/users/edit">edit account</a>

当链接在对话框中时,这很有效,但我不希望非对话框页面链接到对话框。

如何控制特定网页中使用哪两个网址?

一旦我知道正在呈现的页面是否是对话框,甚至是link()调用中允许我覆盖它的内容,我是否可以在AppController中调用。

我知道有“前缀”选项允许使用/user/dialog_edit等网址,但我希望尽可能保留/dialog/users/edit格式。我也知道我可以硬编码URL与传递控制器/ action / id / etc在一个数组中,我不希望路径/模型名称改变,但我想这样做CakePHP的惯用方法,如果可能的。

0 个答案:

没有答案