2010-05-19 13 views
1

對於我的網站,我有一個Orders,其中每個包含Quotes。引述總是依賴於一個單獨的訂單,所以在報價控制器我加引號參照它的順序:在Cakephp中創建有意義的添加URL

function add($orderId) { 
    // function here 
} 

和主叫URL看起來有點像

http://www.example.com/quotes/add/1 

它發生在我的URL會更有意義,如果他們看起來有點更像

http://www.example.com/orders/1/quotes/add 

由於被添加至報價單1

這是可以在CakePHP中實現的東西嗎?

回答

1

查看defining routes的文檔。

像這樣的東西應該做的伎倆:

Router::connect(
    '/orders/:id/quotes/add', 
    array('controller' => 'quotes', 'action' => 'add'), 
    array('id' => '[0-9]+') 
); 

您將能夠與$this->params['id']訪問ID在QuotesController::add()

編輯:

而且,看看爲passing parameters to action的文檔。

,能夠在通過ID作爲像這樣的控制器操作的一個參數:

Router::connect(
    '/orders/:id/quotes/add', 
    array('controller' => 'quotes', 'action' => 'add'), 
    array('pass' => array('id'), 'id' => '[0-9]+') 
); 

可以然後與$id訪問ID中QuotesController::add($id)