0

我正在 CakePhp 上开发网站,但我遇到了 URL 的下一个问题。

在我的类别和子类别页面的应用程序中,我需要有下一个 URL:

  • /类别蛞蝓/
  • /category-slug/子类别-slug

问题是这种格式的 URL 与任何控制器/操作URL 匹配,我不能硬编码所有类别/子类别 url,因为它们有很多,而且它们是动态的。

如何解决?

编辑

我发现了这种方法http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp,但可能存在不需要额外检查数据库、缓存等的东西?

4

1 回答 1

1

最快/最简单的方法:

// routes.php
Router::connect('/category/:category/:subcategory', 
                     array('controller'=>'categories', 'action'=>'view'), 
                     array('pass' => array('category', 'subcategory')));

// CategoryController/view
public function view($category = 'default', $subcategory = null) {
    // your logic here
}

// links
$this->Html->link('View PHP >> Tutorials', array('action'=>'view', 
                       'category'=>'php', 'subcategory'=>'tutorials')); 

// output
<a href="/category/php/tutorials">View PHP >> Tutorials</a>

通过/category/在开始时引入,您不必担心为每个其他控制器/动作提供路由(否则每个请求都会发送到您的类别控制器。

于 2012-11-07T13:20:08.603 回答