php - 如何防止特定单词搜索结果 laravel
问题描述
我需要阻止一些特定的搜索,比如用户名。
场景是当我搜索 auth username 我得到所有朋友但如果我搜索 auth username 我不想搜索结果,
这是我的查询
$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();
提前致谢。
解决方案
只需if($searchVal)
在您的where
函数中替换为if($searchVal !== Auth::user()->username)
并且应该排除身份验证用户名结果。
推荐阅读
- python - 如何将此递归解决方案转换为 DP 解决方案?
- nuget - 有没有办法使 NuGet 包不可更新?
- pandas - 如何在 matplotlib 上将两个不同的熊猫数据框绘制成一张图表?
- html - HTML/CSS - 具有视差效果的图像上的图像
- xaml - 如何更改 XAML 弹出窗口的大小?
- elixir - Phoenix Ecto 上的 join 和 preload 有什么区别
- python - 欧拉计划问题 15 的程序仅适用于小于 12 的数字
- javascript - 当两个对象相互引用时,如何停止无限递归?
- java - 为什么我的数组从方法中返回空白,但在 main-Method 中运行时代码工作正常?
- azure - 我们如何在 azure sql 管理实例中连接只读意图?