2009-11-22 37 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