请教朋友,我做了一个这样的表格=
表格调整 = 'id','调整编号', '状态'。
然后调整表有一个我命名为materialloc的关系,然后还有另一个关系到sbin。
然后我使用 Laravel 10 创建了一个这样的查询程序
$query = Adjustment::with('materialloc.sbin');
if ($request->has('search') && $request->input('search')) {
$searchTerm = $request->input('search');
$query->whereHas('materialloc.sbin', function ($query) use ($searchTerm) {
$query->where('name', 'like', '%' . $searchTerm . '%');
});
$query->orWhere('adjustment_number', 'like', '%' . $searchTerm . '%');
}
为什么使用 adjustment_number 搜索不起作用?
但是当我在materialloc.sbin中按名称搜索时它可以工作,我使用的whereHas,where或orWhere有什么问题吗?
请各位朋友帮忙
您需要将
whereHas
和 orWhere
合并到公共搜索中:
$query = Adjustment::with('materialloc.sbin');
if ($request->has('search') && $request->input('search')) {
$searchTerm = $request->input('search');
$query->where(function ($q) use ($searchTerm) {
$q->whereHas('materialloc.sbin', function ($query) use ($searchTerm) {
$query->where('name', 'like', '%' . $searchTerm . '%');
});
$q->orWhere('adjustment_number', 'like', '%' . $searchTerm . '%');
});
}