0

CodeIgniterフレームワークを使用していますが、URLでカテゴリ名を表示する方法を理解できませんが、クエリでカテゴリIDを参照できます。

ジョブと呼ばれるコントローラーを設定しています。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」テーブルが、category_nameではなくjobが属するcategory_idを格納していることです。カテゴリIDとその名前だけを保持する別のテーブルがあります。A.)クエリを記述してB.)SEOに適したURL構造を作成する方法がわかりません。

私の現在のクエリは、「SELECT * FROM jobs WHERE cat_id=3;」のようになります。

また、.htaccessファイルでmod_rewriteを使用する必要があるのか​​、CodeIgniterでroutes.phpファイルを使用する必要があるのか​​わかりません。

どんな助けでも大歓迎です!

-ありがとう

4

2 に答える 2

3

他のテーブルに参加するだけです。

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

まだ持っていない場合は、カテゴリ名に一意のキーを付けるようにしてください。

mod_rewriteこれはアプリのルーティングに対する不十分なソリューションであり、とにかくここではあまり役に立ちません。フレームワークが提供するものに固執します。

于 2011-05-29T05:09:41.463 に答える
1

http://codeigniter.com/user_guide/helpers/url_helper.htmlのURL_title()をご覧ください。

url_title()関数を使用してカテゴリ名を変換し、重複がないことを確認します。

URLが呼び出されたとき単純なwhereステートメントを使用してモデルからカテゴリを検索します

例えば

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

これを使用してページタイトルなどをロードし、返されたcategoryidを使用してジョブテーブルを検索します。

于 2011-05-29T13:11:22.607 に答える