簡體   English   中英

如何在 url 中使用類別名稱而不是類別 ID?

[英]How do I use the category name rather than the category id in my url?

我正在使用 CodeIgniter 框架,並且無法弄清楚如何讓我的 url 顯示類別名稱,但我的查詢仍然引用類別 ID。

我有一個名為作業的 controller 設置。 url 的結構是“example.com/jobs/listings/category_id”示例:“example.com/jobs/listings/3”,其中 3 是“軟件”的類別 ID。

我寧願 url 說“example.com/jobs/listings/category_name”示例:“example.com/jobs/listings/software”。

我遇到的問題是“jobs”表保存了job所屬的category_id,而不是category_name。 我有一個單獨的表,其中僅包含類別 ID 及其名稱。 我不知道如何 A.) 寫我的查詢和 B.) 做一個 SEO 友好的 url 結構。

我當前的查詢類似於“SELECT * FROM jobs WHERE cat_id = 3;

另外,我不確定是否應該在 .htaccess 文件中使用 mod_rewrite,或者是否應該在 CodeIgniter 中使用 routes.php 文件。

任何幫助將不勝感激!

-謝謝

只需加入您的另一張桌子。

SELECT * FROM jobs JOIN categories ON jobs.cat_id = categories.id WHERE categories.name = ?;

如果您還沒有,請確保在類別名稱上放置一個唯一鍵。

mod_rewrite對應用程序路由來說是一個糟糕的解決方案,無論如何在這里也無濟於事。 堅持你的框架提供的任何東西。

在 URL_title() 上查看http://codeigniter.com/user_guide/helpers/url_helper.html

使用 url_title() function 轉換類別名稱,確保沒有重復項。

當調用 url 時,使用簡單的 where 語句從 model 中查找您的類別

例如

$this->db->from('categories');
$this->db->where('name', $url);
Etc...

使用它來加載您的頁面標題等,然后使用返回的 categoryid 在您的工作表上進行查找。

暫無
暫無

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

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