CakePHP3、Search Pluginで複数のモデルから検索

なんだろ、Search Pluginのバージョン?CakePHPが3だから?
やりたいことがなかなか出てこなかったのでメモ

Search Pluginは普通メインのテーブルからのみの検索となるので
それに紐付いてるテーブルからも検索できるようにしたかった。

コントローラー側の
public $presetVarsと
モデルの
public $filterArgsを設定すればできた

メインのモデルに紐付いてるモデルをHogesモデルだとすると
コントローラー側のpublic $presetVarsを

statusはメインのモデルなのでモデル名を指定しないでも大丈夫だった
Hoges.hoge_idというのは、field名hoge_idという検索フォームはHogesモデルのhoge_idカラムから検索してね
という意味なんだと思う

ただ、コレだけだと動かなくて

モデルのpublic $filterArgsを

というようにコントローラーに書いたのと同じ感じで書いてあげると動いた。
ただメインのモデルにHogesという別モデルのことも書かなきゃいけないのがちょっと違和感……

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です