簡體   English   中英

CakePHP:如何使用“漂亮”網址選擇一個類別的所有元素? (/類別/ NAME_OF_CATEGORY)

[英]CakePHP: How can I select all elements of one category with a “nice” url? (/category/NAME_OF_CATEGORY)

現在我有兩張桌子。 類別和網站。 我有一個名為Cars(id:5)的類別和屬於該類別的兩個網站(bmw.com,toyota.com)。 如果我現在想要查看所有汽車的網站,我使用普通的url / categories / view / 5。 但我希望有一個像/ categories / cars /這樣的網址來查看同一頁面。 所以基本上不是動作而是我需要在類別表中使用行的名稱。

你能幫助我實現這個目標嗎? 謝謝干杯

這很簡單 - 只需閱讀有關路由的非常深入的文檔,您就可以在幾分鍾內解決它:

http://book.cakephp.org/2.0/en/development/routing.html

為了實現您的要求,您需要對兩件事做出更改:

  • app/Config/route.php文件。
  • app/Controller/CategoriesController.php文件。

app/Config/route.php

Router::connect('/categories/:name', array(
       'controller' => 'categories', 'action' => 'viewByName'
    ),
    array(
        'pass' => 'name',
        'name' => '[a-zA-Z0-9]+'
    )
);

app/Controller/CategoriesController.php

public function viewByName($name = null) {
    $option = array(
        'conditions' => array('Category.name'=>$name)
    );
    $category = $this->Category->find('first', $options);
    $this->set('category', $category);
}

然后,您可以將app/View/Categories/view.ctp的內容復制到viewByName.ctpviewByName.ctp潤色一下。

我給你最低限度,所以請出於安全原因添加檢查變量內容等等。

您還可以通過查看Cake Documentation上的Routing頁面了解更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM