2016年4月28日木曜日

PHPフレームワークMakoで、AND+OR検索

PHPフレームワークMako(4.5.10)で、AND+OR検索です。泣けました。where句の「'AND ('」とorWhereRaw句の「"'%" . $value . "%')"」にある、カッコ「(」「)」の2つがミソです。なんとか動きました。

// $keywords は、検索キーワードの配列
$blogs = Blog::where('blogs.publish', '=', 1);
if (count($keywords) > 0) {
  foreach ($keywords as $key => $value) {
    $blogs = $blogs->where('blogs.title', 'LIKE', '%' . $value . '%', 'AND (')
      ->orWhereRaw('blogs.contents', 'LIKE', "'%" . $value . "%')");
  }
}
$blogs = $blogs->orderBy('blogs.createat', 'desc')
  ->limit($limit)
  ->offset($offset)
  ->all();
実際に設定してみたサイトがこちら

参考サイト
Query builder(Mako Framework Documentation)

0 件のコメント:

コメントを投稿