在Cakephp中编写自动路线

时间:2015-08-18 19:59:42

标签: php cakephp routes router

我可以使用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'));

1 个答案:

答案 0 :(得分:0)

首先需要实例化对象(更多信息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 */);
    }
}

但要小心,如果有这么多记录,只要查询商店和城市的组合是否存在就可以更快,如果存在,那么只需创建一条路线。