2011-05-29 103 views
0

我使用的CodeIgniter框架,並無法弄清楚如何讓我的網址顯示類別名稱,但仍然有我的查詢引用類別ID。如何在我的網址中使用類別名稱而不是類別ID?

我有一個控制器設置爲作業。該網址的結構是「example.com/jobs/listings/category_id」示例:「example.com/jobs/listings/3」,其中3將是「軟件」的類別標識。

我寧願網址說「example.com/jobs/listings/category_name」示例:「example.com/jobs/listings/software」。

我遇到的問題是「作業」表中存儲的作業所屬的category_id不是category_name。我有一個單獨的表,只保存類別ID和他們的名字。我不知道如何A.)寫我的查詢和乙)做一個SEO友好的網址結構。

我當前的查詢看起來像「SELECT * FROM WHERE工作= CAT_ID 3;

而且,我不知道我是否應該在.htaccess文件或者如果可以使用mod_rewrite我應該使用路由在CodeIgniter的PHP文件。

任何幫助將不勝感激!

-Thanks

回答

3

剛剛加入到其他表。

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

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

mod_rewrite是一個糟糕的應用程序路由解決方案,無論如何不會有太大的幫助。堅持你的框架提供。

+0

你能詳細說明最後一句話嗎? – Dormouse 2011-05-29 09:07:46

1

在這裏URL_title有http://codeigniter.com/user_guide/helpers/url_helper.html看看()

轉換,則使用url_title()函數確保您有沒有重複的類別名稱。

當一個URL被稱爲使用簡單的WHERE語句

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

使用此加載網頁標題等,然後使用類別ID返回做一下從你的模型查找您的類別放在你的工作表上。

+0

謝謝,我不知道url_title()。這對我有幫助。我希望我可以選擇兩個答案,因爲他們都幫助。我會給你一個+1;) – bigmike7801 2011-05-30 23:42:42

相關問題