カテゴリに関連付けられているカテゴリ内の投稿を検索しようとしています。今、私はこれを持っています:HABTMの条件によるレコードの検索
$this->set('posts', $this->Category->Post->find('all', array('conditions' => array('Category.uri' => $uri))));
しかし、これは動作していないようです。エラーが表示されます:
Warning (512): SQL Error: 1054: Unknown column 'Category.uri' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 684]
..<snipped>...
Query: SELECT `Post`.`id`, `Post`.`title`, `Post`.`uri`, `Post`.`body`, `Post`.`created`, `Post`.`modified` FROM `posts` AS `Post` WHERE `Category`.`uri` = 'holidays'.
モデル間にHABTMがある場合、そのように取得できるはずです。ただし、表示されたSQLはcategoriesテーブルにJOINしません。
// Category Model
class Category extends AppModel {
var $name = 'Category';
var $hasAndBelongsToMany = array(
'Post' => array(
'className' => 'Post'
)
);
}
// Post Model
class Post extends AppModel {
var $name = 'Post';
var $hasAndBelongsToMany = array(
'Category' => array(
'className' => 'Category'
)
);
}
CakePHPのORMの内部に関するニースの情報が、それがどのように役立つかを見ることができません。 –
なぜなら、Coodは 'categories'と' posts'テーブルで決して 'JOIN'を実行しないので、カテゴリのプロパティによってPostのクエリを制約できない理由を説明するのに役立ちます。それは「魚を与える」よりむしろ「釣りを教える」試みだった。 :-) –
まあ、私はHABTMについてteknoidによってブログ記事を読んだ後にそれを得ました。ありがとう。 –