2009-11-22 95 views
1

我正在尝试构建一个迷你cms,从而所有网址都转到“产品”控制器的索引操作。CakePHP和管理路由与“全部捕获”动作

products_controller检查url并将其视为一个参数,因此'/ widgets'会触发index($ url)函数,并将'widgets'传递给$ url参数。

我然后做一个查找这样的检查领域被称为网址:

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

我再吐这$产品了我的看法。这个方法意味着我可以在我的数据库中添加一个产品,并为产品指定url,而不必向路由添加东西。我也有一个导航栏,它由数据库中的所有URL组成,使用find all。

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

任何人都可以看到有一个'捕捉所有'路线的方式,也有我的管理路由工作。

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

+0

很有关系:http://stackoverflow.com/questions/1719199/cakephp-routing-without-id/1719412#1719412 – deceze 2009-11-22 23:20:47

回答

2

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

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

完美,谢谢:) – 2009-11-25 10:52:21