なんだろ、Search Pluginのバージョン?CakePHPが3だから?
やりたいことがなかなか出てこなかったのでメモ
Search Pluginは普通メインのテーブルからのみの検索となるので
それに紐付いてるテーブルからも検索できるようにしたかった。
コントローラー側の
public $presetVarsと
モデルの
public $filterArgsを設定すればできた
メインのモデルに紐付いてるモデルをHogesモデルだとすると
コントローラー側のpublic $presetVarsを
1 2 3 4 5 6 7 8 9 |
public $presetVars = array( 'status' => array( 'type' => 'value' ), 'Hoges.hoge_id' => array( 'type' => 'value', 'field' => 'hoge_id' ) ); |
statusはメインのモデルなのでモデル名を指定しないでも大丈夫だった
Hoges.hoge_idというのは、field名hoge_idという検索フォームはHogesモデルのhoge_idカラムから検索してね
という意味なんだと思う
ただ、コレだけだと動かなくて
モデルのpublic $filterArgsを
1 2 3 4 5 6 7 8 9 |
public $filterArgs = array( 'status' => array( 'type' => 'value' ), 'hoge_id' => array( 'type' => 'value', 'field' => 'Hoges.hoge_id' ) ) |
というようにコントローラーに書いたのと同じ感じで書いてあげると動いた。
ただメインのモデルにHogesという別モデルのことも書かなきゃいけないのがちょっと違和感……