- 商品テーブルから削除フラグが0で公開ステータスが1の商品で、更に入力されたキーワードに該当する商品を取得したい
<?php
$keyword=Input::get("keyword");
$itemList=Item::where("del_flg", "=", 0)
->where("item_public_status", "=", 1)
->where(function($query) use($keyword)
{
$query->where("item_name", "LIKE", "%$keyword%");
$query->or_where("item_meta_keywords", "LIKE", "%$keyword%");
$query->or_where("item_meta_description", "LIKE", "%$keyword%");
})
->get();
- ポイントは無名関数を使うときに、useを使うこと。
- 無名関数内では、$keywordにアクセスできないためuse構文を使用する。
- useには複数指定できるので、引き継ぎたい変数をどんどんぶっこめばいいだけ。
SELECT
*
FROM
`item`
WHERE
`del_flg` = '0' AND `item_public_status` = '1' AND
(`item_name` LIKE '%チョコ%' OR `item_long_description` LIKE '%チョコ%' OR `item_meta_keywords` LIKE '%チョコ%' OR `item_meta_description` LIKE '%チョコ%')