CakePHPの便利な検索プラグイン「Search Plugin for CakePHP」で検索フォームを汎用的にする方法です。
Search Pluginのインストールは上記のリンクで説明されていますのでそちらを参照してください。
UserというModelにnameフィールドがあり、そのnameフィールドを部分一致検索する場合の例を以下に示します。
Model、Controllerは通常の使い方と変わりません。
●Model
●Controller
ここからが本題のViewの部分です。
まず、Elementとして検索フォームのテンプレートを作成します。
●検索フォームのElement
注目するのは2行目の $model と $url です。これらの引数を取ることで同じデザインで汎用的に使うことができるようになります。
また、7行目で検索文字列入力テキストボックスのplaceholderの$descも引数として指定するようにしています。
●View
先程の検索フォームのElementを呼び出します。
3行目で引数を($model => User、 $url => /users/index、 $desc => ここに検索文字を入力してください)として検索フォームのElementを呼び出しています。
後はElementのフォーマットを好きなように変更すれば、独自の汎用検索フォームの完成です。