laravel - 在 Laravel 中搜索
问题描述
我有以下查询
$objects = Object::where('user_id', auth()->user()->id)
->where('object_name','LIKE','%'.$request->search."%")
->get();
这将返回包含关键字的当前用户的所有对象。这仅搜索object_name
列中的关键字。
因为我想在两者中搜索object_name
and object_description
,所以我添加了一个orWhere
子句,如下所示:
$objects = Object::where('user_id', auth()->user()->id)
->where('object_name','LIKE','%'.$request->search."%")
->orWhere('object_description','LIKE','%'.$request->search."%")
->get();
现在这将返回包含关键字 in 的所有对象object_name
,object_description
但它会在整个用户群中进行搜索。
我想要的是更改此查询,以便我可以在object_name
or中搜索关键字object_description
,但搜索范围必须限于当前登录的用户。
解决方案
您应该像这样更改您的查询
$search = $request->search;
$objects = Object::where('user_id', auth()->user()->id)
->where(function($query) use ($search) {
$query->where('object_name','LIKE',"%{$search}%")
->orWhere('object_description','LIKE',"%{$search}%");
})
->get();
推荐阅读
- javascript - (HTMLAudioElement) 音频在一段时间后停止工作
- javascript - 如何创建下拉菜单以与图标做出反应
- azure-devops - 无法管理 Azure DevOps 存储库的权限和策略
- javascript - 如何汇总数组对象中的总数
- ruby - DRuby 与 Selenium WebDriver
- java - 如何使用 log4j.properties 为多个用户创建多个日志文件
- javascript - Framework7:如何获取所有页面的HTML?
- python - 具有怪异列表操作/理解技术的简单 Python 代码,通过该技术将列表的一个元素分配给一个变量
- javascript - React - FC - 如何在反应环境中停止执行
- vue.js - 如何从实时 vue 站点 url 中删除端口号?