Dynamic routing in CakePHP

牧云@^-^@ 提交于 2019-12-05 20:15:29

No need to do anything complex :)

In routes.php:

Router::connect('/produkty/*', array('controller'=>'products', 'action'=>'view'));

In products_controller.php:

function view($url = null) {
    $product = $this->Product->find('first', array('conditions'=>array('Product.url' => $url)));
    ...
}

Yop,

You don't need to define route for each entry in your model DB. Routes ARE dynamics. There are many ways to define routes but the easier is to pass args to action like they comes.

routes.php

Router::connect('/produkty/*', array('controller' => 'products', 'action' => 'view'));

products_controller.php

class ProductsController extends AppController{
    public function view($id){
         //do anything you want with your product id
    }
}

You can also use named args

routes.php

Router::connect('/produkty/:id/*', array('controller' => 'products', 'action' => 'view'), array('id' => '[0-9]+'));

products_controller.php

class ProductsController extends AppController{
    public function view(){
         //named args can be find at $this->params['named']
         $productId = $this->params['named']['id'];
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!