如何防止特定单词搜索结果laravel

我需要阻止一些特定的搜索,比如用户名。


场景是当我搜索 auth 用户名时,我得到了所有朋友,但是如果我搜索 auth 用户名,我不想搜索结果,


这是我的查询


$searchVal = $request->input('search');

$friend_data = Friend::with('getAccept', 'getRequest')->where('status', '1')->where(static function ($q) use ($user) {

            $q->where('user_id', $user->id)->orWhere('ref_id', $user->id);

        })->where(function ($q1) use ($searchVal) {

            if($searchVal) {

                $q1->whereHas('getRequest', function ($q) use ($searchVal) {

                    $q->where('username', 'LIKE', '%' . $searchVal . '%');                

                });

                $q1->orWhereHas('getAccept', function ($q) use ($searchVal) {

                    $q->where('username', 'LIKE', '%' . $searchVal . '%');                    

                });

            }

        })->get();

提前致谢。


qq_遁去的一_1
浏览 99回答 1
1回答

蛊毒传说

只需将if($searchVal)您的where函数替换为if($searchVal !== Auth::user()->username),这应该排除auth 用户名结果。
打开App,查看更多内容
随时随地看视频慕课网APP