在 Cakephp 中编写自动路由
Writing automatic routes in Cakephp
我可以使用 Router :: connect 2x CakePHP
编写自己的自动路由吗?
我需要在数据库中写入我的路由,并使用我的数据库将参数传递给 routes.php 文件,以创建一个友好的 URL.
我有这样的东西(但我必须手工做):
Router :: connect ('/ Mycity / gifts / *', array ('controller' => 'shops', 'action' => 'result', 'F', null, '1', '4'));
我需要这样的东西(自动化流程):
Router::connect('/'.$city.'/'.$shop.'/*',array('controller'=>'shops','action'=>'result','.$genre.',null,'1','4'));
您首先需要实例化您的对象(更多信息 Using Model in routes file, cakephp )
// City model
App::uses('City', 'Model');
$cityModel = new City();
$cities = $cityModel->find('all');
// Shop model
App::uses('Shop', 'Model');
$shopModel = new Shop();
$shops = $shopModel->find('all');
然后你可以遍历它们并创建动态路由
foreach ($cities as $city) {
foreach ($shops as $shop) {
Router::connect(/* your params */);
}
}
但要小心,如果有这么多记录,只查询商店和城市的组合是否存在会更快,如果存在,则只创建一条路线。
我可以使用 Router :: connect 2x CakePHP
编写自己的自动路由吗?
我需要在数据库中写入我的路由,并使用我的数据库将参数传递给 routes.php 文件,以创建一个友好的 URL.
我有这样的东西(但我必须手工做):
Router :: connect ('/ Mycity / gifts / *', array ('controller' => 'shops', 'action' => 'result', 'F', null, '1', '4'));
我需要这样的东西(自动化流程):
Router::connect('/'.$city.'/'.$shop.'/*',array('controller'=>'shops','action'=>'result','.$genre.',null,'1','4'));
您首先需要实例化您的对象(更多信息 Using Model in routes file, cakephp )
// City model
App::uses('City', 'Model');
$cityModel = new City();
$cities = $cityModel->find('all');
// Shop model
App::uses('Shop', 'Model');
$shopModel = new Shop();
$shops = $shopModel->find('all');
然后你可以遍历它们并创建动态路由
foreach ($cities as $city) {
foreach ($shops as $shop) {
Router::connect(/* your params */);
}
}
但要小心,如果有这么多记录,只查询商店和城市的组合是否存在会更快,如果存在,则只创建一条路线。