猿问

为什么我的第三个条件在搜索中不起作用?

我正在尝试获取搜索结果,并且我有以下代码:


public function search(Request $request){ 

    $from = $request->from;

    $to = $request->to;

    $word = $request->word;  

    if(empty($word) || $word == null){

        $searched = Post::whereBetween('created_at', [$from, $to])->paginate(10);

    } elseif(!empty($word) && !empty($from) && !empty($to)){ 

        $searched = Post::where('title', 'LIKE', '%' . $word . '%')

        ->orWhere('content', 'LIKE', '%' . $word . '%')

        ->orWhere('subtitle', 'LIKE', '%' . $word . '%')

        ->whereBetween('created_at', [$from, $to])

        ->paginate(10); 

    } elseif(empty($from) && empty($to) && !empty($word)){

        $searched = Post::where('title', 'LIKE', '%' . $word . '%')

        ->orWhere('content', 'LIKE', '%' . $word . '%')

        ->orWhere('subtitle', 'LIKE', '%' . $word . '%')

        ->paginate(10);

    }


    return view('page.search', compact('searched', 'from', 'to'));

}

第一个和第二个条件正在起作用,但最后一个条件不起作用。我在这里错过了什么或做错了什么?


慕村9548890
浏览 111回答 1
1回答

MMMHUHU

试试这个例如,如果找到单词,则使用类似搜索,然后第一个条件为真如果用户设置了开始日期和截止日期,则第二个条件为 true如果用户同时填写(单词和日期),则您的两个条件都为真。如果你没有填写任何值,那么只得到前10(十)个帖子(没有条件匹配)public function search(Request $request){    $posts = Post::query();    $from = $request->from;    $to = $request->to;    $word = trim($request->word);    if($word && !empty($word)){           $posts->where('title', 'LIKE', '%' . $word . '%')            ->orWhere('content', 'LIKE', '%' . $word . '%')            ->orWhere('subtitle', 'LIKE', '%' . $word . '%');    }    if(!empty($from) && !empty($to)){        $posts->whereBetween('created_at', [$from, $to]);    }    $searched = $posts->paginate(10);    return view('page.search', compact('searched', 'from', 'to'));}
随时随地看视频慕课网APP
我要回答