0

学校近くのファストフード店を紹介するサイトを作っています。

やりたいこと;

フロント ページには、選択できる学校の選択肢があり、その学校をクリックすると、その学校の $id に基づいて別のページに移動します。そのページには、食品の種類 (メキシコ料理、中華料理) の別のカテゴリ セットが表示されます。次に、カテゴリをクリックすると、次のページに、選択した特定の学校に近い特定の食品の種類が表示されます。

これに使用される可能性のあるテーブルは、次のように設計されています

id | school_id | category_id | food_id

お分かりのように、個々の ID は、学校名、カテゴリ名、ファースト フードの場所、営業時間、電話番号のいずれかを持つ別のテーブルに関連付けられています。

どうすればこれを達成できますか? school_id と category_id の両方を渡し、SQL を使用して両方の ID を持つエントリを検索する方法を示す必要があると思います。

4

2 に答える 2

0

リクエストを School Controller の View Function にルーティングする場合、以下のように HTML Helper を使用してリンクを作成する必要があります。

$this->Html->link('Anchor Text', array('controller' => 'Schools', 'action' => 'view', 'school_id' => $school_id, 'category_id' => $category_id));

これにより、 http://www.example.com/schools/view/school_id:3/category_id: 4 のようなリンクが作成されます。

これらの値は、School Controller の View Function でアクセスできます。

$school_id = $this->request->params['named']['school_id'];
$category_id = $this->request->params['named']['category_id'];

URL 構造が気に入らず、 seo フレンドリーにするためにhttp://www.example.com/search_school/3/4/に変更したい場合は、routes.php に次の行を追加します。

Router::connect(
  '/search_school/:school_id/:category_id', 
  array('controller' => 'schools', 'action' => 'view'));

Cakephp の優れた点は、他に何も変更する必要がなく、ルーター ファイルの URL 構造をいつでも変更できることです。

于 2014-01-01T07:04:06.060 に答える