【问题标题】:CakePHP and admin routing with a 'catch all' actionCakePHP 和管理路由,带有“catch all”操作
【发布时间】:2010-12-19 07:09:26
【问题描述】:

我正在尝试构建一个迷你 cms,其中所有 url 都转到“产品”控制器的索引操作。

products_controller 检查 url 并将其视为参数,因此 '/widgets' 将命中 index($url) 函数并将 'widgets' 传递为 $url 参数。

然后我会像这样检查一个名为 url 的字段:

$product= $this->Product->find('first', array('conditions' => array('Product.url LIKE' => $url)));

然后我将这个 $product 吐到我的视野中。这种方法意味着我可以在我的数据库中添加产品,并指定产品的 url,而无需向路由添加东西。我还有一个导航栏,它只是由数据库中的所有 url 组成,使用 find all。

我的问题是我的路由和我的管理员。因为我将所有 url 路由到 products_controller 的 index() ,所以它不会导致我的管理部分出现问题。 因此,我将我的管理员放在一个单独的控制器中,并手动将 URL 连接到操作(索引、视图、编辑、添加、删除)。问题是我的管理部分不起作用,因为 url 路由不正确,并且它破坏了管理路由。

任何人都可以看到这样的“包罗万象”路线,而且我的管理员路由也可以正常工作。

希望我已经足够清楚地解释了这一点,如果没有请大喊大叫,因为我想弄清楚这一点。

【问题讨论】:

标签: cakephp routes admin


【解决方案1】:

如果您有一个覆盖默认管理员路由的路由,您可以在 routes.php 中添加类似的内容来覆盖它。

    Router::connect('/admin/:controller/:action/*',
                   array('admin'=>true));

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多