私はLandmarksというテーブルとHABTM関係を持つCategoriesというテーブルをお互いに持っています。私は、次のコードで、特定のランドマークのためのすべてのカテゴリを取得しようとしています:私のCakePHP HABTMクエリで何が間違っていますか?
$this->set('selected_categories', $this->Category->find('list',
array('contain'=>array(
'Landmarks'=>array(
'conditions'=>array('Landmark.num'=>7)
)))));
私は(デバッグレベル2にプリントアウトなど)は、このから得られるデータベースクエリをテストしてみた、やっています正しい結果、すなわちカテゴリーのサブセット。しかし、ビューでvar_dump $ selected_categoriesを実行すると、代わりにすべてのカテゴリのリストが表示されます。
私はここで何かが分かりませんか?
ETA:上記のクエリが機能していると私はうそを言いました。ページ上の他のものが、私が望むSQLクエリを生成しています!これは:
SELECT `Categories`.`num`, `CategoriesLandmark`.`category_num`,
`CategoriesLandmark`.`landmark_num`
FROM `categories` AS `Categories` JOIN `categories_landmarks`
AS `CategoriesLandmark` ON (`CategoriesLandmark`.`landmark_num` = 7
AND `CategoriesLandmark`.`category_num` = `Categories`.`num`) WHERE 1 = 1
ええ、私の質問がうまくいっていると私はうそを言いました。私の質問を再編集するつもりです。私は「リスト」を「すべて」に変更しようとしたと思うが、確かにもう一度やり直すだろう! – thesunneversets
私は実際に自分の答えを編集しました。結合を使用してみてください。 「すべて」に設定するとどちらもうまくいかないでしょう。理由を説明するために私の答えを再編集します。 – RabidFire
本当にうまくいっています...コントローラーから私のモデルへの手入れを助けてくれてありがとう! – thesunneversets