0

私は CakePhp で Web サイトを開発していますが、URL に次の問題があります。

カテゴリとサブカテゴリのページのアプリでは、次の URL が必要です。

  • /カテゴリ-スラッグ/
  • /category-slug/subcategory-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 に答える