Это простой случай маршрутизации URL-адреса на действие контроллера, он вообще не включает модели.
Router::connect('/:carlink',
array('controller' => 'cars', 'action' => 'view'),
array('carlink' => 'cars-\w+', 'pass' => array('carlink')));
Этот маршрут говорит любой URL, который соответствует /:carlink
, должен быть направлен на данный контроллер и действие . В последней части вы разъясняете, что может быть :carlink
с регулярным выражением cars-\w+
(«автомобили-», за которым следует любое слово). Вы также передаете это значение своему вызываемому действию.
class CarsController extends AppController {
public function view($car) {
if (!preg_match('/cars-(\w+)/', $car, $matches)) {
// action was accessed with invalid URL, bail out
$this->cakeError('error404');
}
// use $matches[1], which will be 'audi', for example
…
}
}
Ваши дорожные URL-адреса будут перенаправляться на RoadsController, как обычно, так:
Router::connect('/roads/*', array('controller' => 'roads', 'action' => 'view'));