CakePHP和管理员路由与'全部捕获'动作

时间:2009-11-22 21:16:12

标签: cakephp routes admin

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

products_controller检查url并将其视为参数,因此'/ widgets'将触及索引($ url)函数并将'widgets'传递为$ url param。

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

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

然后我将这个$产品吐出我的观点。这种方法意味着我可以在我的数据库中添加产品,并指定产品的URL,而无需向路径添加内容。我还有一个导航栏,它简单地由数据库中的所有URL组成,使用find all。

我的问题是我的路由和我的管理员。因为我将所有url路由到products_controller的index(),所以它导致我的管理部分没有问题。 因为这个原因,我将管理员放在一个单独的控制器中,并手动将URL连接到操作(索引,视图,编辑,添加,删除)。事情是我的管理部分没有工作,因为网址被错误地路由,并打破了管理路由。

任何人都可以看到像这样的“捕捉所有”路线的方式,并且还有我的管理路由工作。

希望我已经足够清楚地解释了这一点,如果不是,请大声说出来,因为我想把它弄清楚。

1 个答案:

答案 0 :(得分:2)

如果你的路由覆盖了默认的管理路由,你可以在routes.php中添加类似的东西来覆盖它。

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