私はCakePHP2.2.2を使用しています。3つのテーブルがあります:レストラン、キッチン、kitchens_restaurants-HABTMのテーブルに参加します。
レストランモデルでは、次のようになります。
public $hasAndBelongsToMany = array(
'Kitchen' =>
array(
'className' => 'Kitchen',
'joinTable' => 'kitchens_restaurants',
'foreignKey' => 'restaurant_id',
'associationForeignKey' => 'kitchen_id',
'unique' => true,
'conditions' => '',
'fields' => 'kitchen',
'order' => '',
'limit' => '',
'offset' => '',
),
問題は、メインページ用に別のコントローラーがあり、複雑な条件でこのモデルからデータを取得する必要があることです。
追加した
public $uses = array('Restaurant');
私のメインページコントローラーに、そしてここに私があなたのアドバイスを必要とする部分が来ます。
キッチン=$idのレストランのみを選択する必要があります。追加しようとしました
public function index() {
$this->set('rests', $this->Restaurant->find('all', array(
'conditions' => array('Restaurant.active' => "1", 'Kitchen.id' => "1")
)));
}
SQLSTATE [42S22]が表示されました:列が見つかりません:1054'where句'エラーの不明な列。明らかに「HABTM結合テーブル」からデータをフェッチする必要がありますが、その方法がわかりません。