ユーザーが Web サイト上のすべての製品を検索する方法を作成しようとしています。彼らが「バートン スノーボード」を検索すると、バートン ブランドのスノーボードだけが結果に表示されます。ただし、「burton」のみを検索すると、burton ブランドのすべての製品が表示されます。
これは私が書き込もうとしたものですが、複数の理由で機能していません。
コントローラ:
public function search(){
$input = Input::all();
$v= Validator::make($input, Product::$rules);
if($v->passes())
{
$searchTerms = explode(' ', $input);
$searchTermBits = array();
foreach ($searchTerms as $term) {
$term = trim($term);
if (!empty($term)){
$searchTermBits[] = "search LIKE '%$term%'";
}
}
$result = DB::table('products')
->select('*')
->whereRaw(". implode(' AND ', $searchTermBits) . ")
->get();
return View::make('layouts/search', compact('result'));
}
return Redirect::route('/');
}
このstackoverflow.comの問題に対して与えられた最初の解決策を再作成しようとしています
私が特定した最初の問題は、を分解しようとしているということです$input
が、それはすでに配列です。だから私はそれを修正する方法がわかりません。そして、私が書いた方法は->whereRaw(". implode(' AND ', $searchTermBits) . ")
、確かに正しくありません。これらの問題を解決する方法はわかりませんが、洞察や解決策があれば大歓迎です。