在Cakephp中创建有意义的添加URL

在Cakephp中创建有意义的添加URL,cakephp,url-routing,crud,url,Cakephp,Url Routing,Crud,Url,对于我的网站,我有许多订单,每个订单都包含许多引号。报价始终绑定到单个订单,因此在quotes控制器中,我添加了一个引用其订单的报价: function add($orderId) { // function here } 调用的URL看起来有点像 http://www.example.com/quotes/add/1 我突然想到,如果URL看起来更像 http://www.example.com/orders/1/quotes/add 由于报价已添加到订单1中 在CakePHP中

对于我的网站,我有许多
订单
,每个订单都包含许多
引号
。报价始终绑定到单个订单,因此在quotes控制器中,我添加了一个引用其订单的报价:

function add($orderId) {
    // function here
}
调用的URL看起来有点像

http://www.example.com/quotes/add/1
我突然想到,如果URL看起来更像

http://www.example.com/orders/1/quotes/add
由于报价已添加到订单1中


在CakePHP中可以实现这一点吗?

请查看有关的文档

像这样的事情应该可以做到:

Router::connect(
    '/orders/:id/quotes/add',
    array('controller' => 'quotes', 'action' => 'add'),
    array('id' => '[0-9]+')
);
您可以使用
quoteController::add()
中的
$this->params['ID']
访问ID

编辑:

另外,请查看有关的文档

可以将ID作为控制器操作的参数传入,如下所示:

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

然后,您可以在
QuotesController::add($ID)
中使用
$ID
访问该ID。请查看文档以了解更多信息

像这样的事情应该可以做到:

Router::connect(
    '/orders/:id/quotes/add',
    array('controller' => 'quotes', 'action' => 'add'),
    array('id' => '[0-9]+')
);
您可以使用
quoteController::add()
中的
$this->params['ID']
访问ID

编辑:

另外,请查看有关的文档

可以将ID作为控制器操作的参数传入,如下所示:

Router::connect(
    '/orders/:id/quotes/add',
    array('controller' => 'quotes', 'action' => 'add'),
    array('pass' => array('id'), 'id' => '[0-9]+')
);
然后,您可以在
QuotesController::add($ID)
中使用
$ID
访问ID