0
ウェブサイトの検索フォームに問題があります。基本的に、ユーザーが複数のキーワードを検索フォーム(例:名刺)に入力すると、検索結果にキーワード1(ビジネスなど)のすべての画像とキーワード2のすべての画像(カードなど)が表示されます。これは悪いですが、検索フォームはまったく関係ありません。あなたは下のコードを見て、それを修正するのを助けて、両方のキーワード(keyword1 + AND + keyword2)を持つ画像だけを検索フォームに表示することができますか?laravel複数のキーワードを検索
検索クエリの前と後に%
記号を使用する場合、あなたは「その項目に私に何かを与える」と言う
public function search($search, $category = null, $timeframe = null)
{
$extends = explode(' ', $search);
if ($category) {
$categoryId = $this->category->whereSlug($category)->first();
}
$images = $this->posts($category, $timeframe)->where('title', 'LIKE', '%' . $search . '%')
->orWhere('tags', 'LIKE', '%' . $search . '%')
->whereNull('deleted_at')->whereNotNull('approved_at')->orderBy('approved_at', 'desc');
foreach ($extends as $extend) {
if (isset($categoryId)) {
$images->whereCategoryId($categoryId)->Where('tags', 'LIKE', '%' . $extend . '%')->whereNotNull('approved_at')->whereNull('deleted_at')
->whereCategoryId($categoryId)->orWhere('title', 'LIKE', '%' . $search . '%')->whereNotNull('approved_at')->whereNull('deleted_at')
->whereCategoryId($categoryId)->orWhere('image_description', 'LIKE', '%' . $search . '%')->whereNotNull('approved_at')->whereNull('deleted_at');
} else {
$images->orWhere('tags', 'LIKE', '%' . $extend . '%')->whereNotNull('approved_at')->whereNull('deleted_at')
->orWhere('title', 'LIKE', '%' . $search . '%')->whereNotNull('approved_at')->whereNull('deleted_at')
->orWhere('image_description', 'LIKE', '%' . $search . '%')->whereNotNull('approved_at')->whereNull('deleted_at');
}
}
return $images = $images->with('user', 'comments', 'favorites')->whereNotNull('approved_at')->whereNull('deleted_at')->paginate(perPage());
}
uh ..どのように動作するかについての説明?現在の出力、予想される出力などのヒントを与えてくれるでしょう。とにかく ' - > orWhere( 'tags'、 'LIKE'、 '%'。$ extend。 '%')' 、 私は考えます.. –