前文: 数日前、私は HABTM フィルターを解決するために質問をしました。
私が達成したいこと: StaffStaffgroup で使用される GroupID によるスタッフのフィルタリング
私は次のテーブルレイアウトを持っています
- スタッフ(人は多くのグループに所属できます)
- staff_staffgroups (HABTM リンクテーブル)
- staffgroups (グループ名を持っています)
変数 $tmp は作業配列を取得しますが、問題は Staff が StaffStaffgroups の子オブジェクトであることです。配列を解析して再構築することはできましたが、これは良い解決策ではありません。したがって、Staff で条件を使用したいのですが(コメント行を参照)、エラー 1054 "column not found: 1054 Unknown column" が表示されます。バインドとバインド解除を試みましたが、結果はありません。
$group_id = 2;
$tmp = $this->Staff->StaffStaffgroup->find('all',
array('conditions' => array(
'StaffStaffgroup.staffgroup_id' => $group_id,
'Staff.isActive =' => "1",
'Staff.last_name LIKE' => "%$name%",
)
)
);
debug($tmp);
//$tmpConditions['AND'][] = array('StaffStaffgroup.staffgroup_id' => $group_ids);
編集:
条件と封じ込め可能な動作で試しましたが、残念ながら何もフィルタリングしていません
$this->Staff->contain(array('StaffStaffgroup'));
$this->paginate = array('StaffStaffgroup' =>array(
array('conditions' => array(
'StaffStaffgroup.staffgroup_id' => '2'
)
)
)
);
- すべてのモデルに追加しました: public $actsAs = array('Containable');
内部結合も試しましたが、フィルタリングはありませんでした:
$this->paginate = array( 'conditions' => array('StaffStaffgroup.staffgroup_id' => 2 ), 'joins' => array( array( 'alias' => 'StaffStaffgroup', 'table' => 'staff_staffgroups', 'type' => 'INNER', 'conditions' => 'StaffGroup_id = StaffStaffgroup.staffgroup_id' ) )
);