CakePHP: изменение ссылки на «tags / index / php» на просто «tags / php» - PullRequest
1 голос
/ 22 октября 2010

У меня есть контроллер с именем TagsController, который берет имя тега из URL в действии index, чтобы получить список проектов с этим тегом.

 <?php
foreach($tags as $tag){
    echo "<span class='homepagetags'>".$html->link($tag['t']['tag'], array('controller' => 'tags', $tag['t']['tag'])) . "</span> x " . $tag[0]['NumOccurrances'] . "<br><br>";
}
 ?>

ссылка приводит меня к тегам / index / php, когда я действительно хочу, чтобы она была тегами / php

Это решение для маршрутизации?

Ответы [ 2 ]

3 голосов
/ 22 октября 2010

В частности, вам нужно:

// routes.php
Router::connect(
   '/tags/:tag',
   array('controller' => 'tags', 'action' => 'index')
);

Затем создать ссылку:

echo $html->link(
    'PHP Tag',
    array('controller' => 'tags', 'action' => 'index', 'tag' => 'php')
);
2 голосов
/ 22 октября 2010

Да, есть решение для маршрутизации.Это объясняется примерно на полпути вниз по разделу Определение маршрутов в Поваренной книге.Пример:

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