对于我的网站,我有一些Orders
,其中每个Quotes
都包含多个function add($orderId) {
// function here
}
。报价总是与单个订单挂钩,因此在报价控制器中我添加一个参考其订单的报价:
http://www.example.com/quotes/add/1
调用网址看起来有点像
http://www.example.com/orders/1/quotes/add
如果他们看起来更像
,那么网址会更有意义{{1}}
正在将报价添加到订单1中。
这是否可以在CakePHP中实现?
答案 0 :(得分:1)
查看defining routes的文档。
这样的事情可以解决问题:
Router::connect(
'/orders/:id/quotes/add',
array('controller' => 'quotes', 'action' => 'add'),
array('id' => '[0-9]+')
);
您将能够通过$this->params['id']
中的QuotesController::add()
访问该ID。
修改:
另外,请查看passing parameters to action的文档。
可以将ID作为控制器动作的参数传递,如下所示:
Router::connect(
'/orders/:id/quotes/add',
array('controller' => 'quotes', 'action' => 'add'),
array('pass' => array('id'), 'id' => '[0-9]+')
);
然后,您可以$id
中的QuotesController::add($id)
访问该ID。