作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个嵌套关系,一个是 requester.link
和 requester.company
,我希望两者都搜索单词 $request->search
.
代码是不言自明的:
$clients = \App\AcceptedConnection::with('requester.link', 'requester.company')
->where('accepter_id', Auth::user()->id)
->orWhereHas('requester.link', function ($query) use ($request) {
$query->orWhere('name', $request->search);
})->orWhereHas('requester.company', function ($query) use ($request) {
$query->orWhere('email', $request->search);
$query->orWhere('firstname', $request->search);
$query->orWhere('lastname', $request->search);
})->get();
它为我提供任何搜索的记录,即使搜索不匹配,它也会返回记录,搜索任何内容,它都会为您提供记录,
我错过了什么?
最佳答案
您正在检查 accepter_id=Auth::user()->id
OR 记录是否与您的搜索词匹配。
您必须将 whereHas()
检查包装到闭包中:
$clients = \App\AcceptedConnection::with('requester.link', 'requester.company')
->where('accepter_id', Auth::user()->id)
->where(function($query) use ($request) {
$query->whereHas('requester.link', function ($query) use ($request) {
$query->orWhere('name', $request->search);
})->orWhereHas('requester.company', function ($query) use ($request) {
$query->orWhere('email', $request->search);
$query->orWhere('firstname', $request->search);
$query->orWhere('lastname', $request->search);
});
})->get()
关于php - 拉拉维尔 : Nested relation search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49574201/
我是一名优秀的程序员,十分优秀!