CakePHP:将链接更改为'tags / index / php'到'tags / php'

时间:2010-10-21 23:03:02

标签: php cakephp url-routing

我有一个名为TagsController的控制器,它从索引操作中的url获取标记名称,以获取具有该标记的项目列表。

 <?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>";
}
 ?>

链接将我带到'tags / index / php',当我真的只想要它是'tags / php'时

这是路由解决方案吗?

2 个答案:

答案 0 :(得分:3)

具体来说,您需要:

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

然后创建一个链接:

echo $html->link(
    'PHP Tag',
    array('controller' => 'tags', 'action' => 'index', 'tag' => 'php')
);

答案 1 :(得分:2)

是的,有一个路由解决方案。它在Cookbook的Defining Routes部分的一半处被解释。例子是:

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