0

我正在使用cake php version 1.3.11和使用两张桌子,一张是article_category,第二张是articles。在文章类别上存储文章类别名称和文章表,用于带有文章类别 ID 的文章详细信息。

我创建了一个文章控制器来列出类别明智的文章列表。现在 url 显示是这样 mysite/articles/index/<article_category_id> 的 而不是那种类型列表我想显示这样的 url 我该 mysite/<article_category_name>/index 怎么做?

4

1 回答 1

0

好的,有几件事。

惯例 遵循 Cookbook 以获得更多更好的理解

  1. article_category应该是公正categories的。
  2. article_category名称类型用于 HABTM 类型关系的连接表(多对多关系)。即使作为连接表,它也应该是articles_categories. 您可以使用Inflectore::pluralize('singularname')创建复数案例。关注食谱了解更多

CakePHP 有一个Router 类,用于处理连接自定义路由。它位于App/Config/route.php。您可以使用它来满足几乎所有 URL 需求。

现在为解决方案,

  • 修改您的categories(在您的情况下为 article_category)表以包含一个名为slug. 与名称相比,我建议使用 slug。
  • 定义一条新路线跟随 CookBook 了解更多

    // In app/Config/routes.php 
    Router::connect(
        '/articles/index/:id-:slug', // E.g. /articles/index/3-technology
        array('controller' => 'articles', 'action' => 'index'),
        array(
        // order matters since this will simply map ":id" to $articleId in your action
            'pass' => array('id', 'slug'),
            'id' => '[0-9]+'
       )
    );
    
  • 修改您的控制器操作以接受 slug

    public function index( $id, $slug = null ) {
    
    }
    
于 2013-03-19T06:58:00.447 回答