Bakeryの情報ではありませんが、役立つ情報と思われますので、ご参考までに。
Searchプラグインは、どんなCakePHPアプリケーションでも、検索を可能にするための PRG (Post/Redirect/Get) を使用したインターフェイスを提供します。シンプルな値比較から、複雑な検索タイプ、ワイルドカード、SQL式やカスタムクエリメソッド、サブクエリにも対応します。プラグインは数行のコードで必要とするものを提供します。
たとえば、productsのコントローラがあり、既存のレコードを「名称」で検索する機能を提供しようと思う場合、PrgComponentをインクルードして、検索条件のリクエストを処理するだけです。最も冗長な例について示します。コンポーネントの使われ方がわかるでしょう。
class ProductsController extends AppController { public $components = array('Search.Prg'); public function index() { // start a standard search $this->Prg->commonProcess(); // process the URL parameters $params = $this->Prg->parsedParams(); // generate the Paginator conditions $conditions = $this->Product->parseCriteria($params); // add the conditions for paging $this->Paginator->settings['conditions'] = $conditions; $this->set('products', $this->Paginator->paginate()); } }
それから、productモデルで、レコード検索できるようにするためにフィールドを定義するための$filterArgsプロパティを含めます。この例では、「名称(name)」フィールドを検索可能なカラムとして定義する方法がわかるでしょう。
class Product extends AppModel { public $actsAs = array('Search.Searchable'); public $filterArgs = array( 'product' => array( 'type' => 'like', 'field' => 'name' ) ); }
最後に、ビューですが、さらに追加するオプションや設定がなければ特に何もする必要はありません。
echo $this->Form->create(); echo $this->Form->input('product'); echo $this->Form->end(__('Search'));
これはSearchプラグインの潜在力を例示するシンプルな例です。その他の利用可能な機能についてさらに情報を得たいなら、ドキュメントを参照してください。あなたのアプリケーションの検索機能を強化するさらに多くの使い方がわかるでしょう。
ご存知の通り、わたしたちのプラグインはオープンソース、無料で提供されており、CakePHPコミュニティの協力を得てリリースされています。Searchプラグインに貢献してくれる皆様すべてに感謝しています。継続的な参加により、フレームワークのエコシステムを健全で堅牢に保つのに役立ち、これらのプラグインがすばらしいアプリケーションの構築に役立つことを願っています。