gpt4 book ai didi

laravel - 如何在多列中搜索?

转载 作者:行者123 更新时间:2023-12-04 10:54:14 24 4
gpt4 key购买 nike

我需要在users中搜索与名称的表,如果表中没有与任何名称匹配的表,则转移到与每个用户相关的类别表。

html的代码:

 <form action="{{ route('search') }}" method="GET">
<input type="search" class="input" name="q" placeholder="Search">
</form>

Controller 代码(我的关闭):
public function search(Request $request)
{
$users = new User;

$req = $request->input('q');

$users = $users->where('name','LIKE','%'. $req .'%')->whereHas('category', function ($query) use($req) {
$query->where('name','LIKE','%'. $req .'%');
});

$users = $users->unverified()->active()->orderBy('id','desc')->paginate(16);
return view('frontend.search.search', compact('users'));

}

类别与用户有关系:
public function category()
{
return $this->belongsTo('App\Category');
}

我需要说如果没有名称(用户表)检查类别一。

最佳答案

您将需要使用 orWhere 方法,这意味着 or 做另一个。为了避免奇怪的逻辑,将它包装在 where 闭包中是最简单的方法。

$users = User::where(function ($query) use($req) {
$query->where('name','LIKE','%'. $req .'%')
->orWhereHas('category', function ($query) use($req) {
$query->where('name','LIKE','%'. $req .'%');
});
});

这意味着您的代码将查找具有名称或给定类别的元素。有一个边缘情况,即使设置了用户,它也会通过类别名称找到。但是避免这种情况,并不像这样直接。

关于laravel - 如何在多列中搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com