CakePHPで簡単に検索する方法。。。うーん。。。
使い方
$this->Model->findByFieldName($FieldNameSearchWord)基本
$this->Model->findByIdAndName($id, $name)も可
$this->Model->findByIdOrName($id, $name)も可
スポンサードリンク
注意など
- いくつも続けて書く事ができる(findByNameOrTitle([KEYWORD]))
- ANDとORは混在できない
- PHP4とPHP5で書き方が違うらしい
あいまい検索はできない
※あいまい検索(LIKE %KeyWord%)はSQLインジェクション対策でNGらしい。発行されるSQLは以下のとおりなので。
SELECT `Item`.`id`, `Item`.`group_id`, `Item`.`name`, `Item`.`item_group_id`, `Item`.`created`, `Item`.`updated`, `ItemGroup`.`id`, `ItemGroup`.`group_id`, `ItemGroup`.`name`, `ItemGroup`.`created`, `ItemGroup`.`updated` FROM `prefix_items` AS `Item` LEFT JOIN `prefix_item_groups` AS `ItemGroup` ON (`Item`.`item_group_id` = `ItemGroup`.`id`) WHERE `Item`.`name` = '%test' LIMIT 1
参考文献
- CakePHP findBy での複数指定を調べたメモ | Sun Limited Mt. :
CakePHP findBy での複数指定を調べたメモ | Sun Limited Mt.先のエントリで書いた「CakePHP findBy で複数条件の指定で OR も指定可能」ですが、findByHogeAndFoo - findBy :: データを取得する :: モデル :: CakePHPによる開発 :: マニュアル :: 1.2コレクション :: The Cookbook :
301 Moved Permanently
コメント