如何搜索数据关系



当我在Room中使用关键字名称进行搜索时,我希望成功,但如果我也添加了与Category的关系,我会出现错误,我希望适合我的搜索,以查找Category->姓名和房间->name,怎么样?但是仍然错误:未定义的属性:App\Http\Controllers\Admin\RoomController::$category,尽管我有相关的房间和类别权限

这个我的控制器:

$query = request('query');
$room = Room::with(['category'])
->where("name", "like", "%$query%")
->orWhere($this->category->name, "like", "%$query%")->get();
return view('admin.room.index', [
'rooms' => $room
]);

您可以使用whereHas根据其关系查询模型:

$query = request('query');
$room = Room::with(['category'])
->where("name", "like", "%$query%")
->orWhereHas('category', function ($q) use ($query) {
$q->where('name', "like", "%$query%");
})->get();

return view('admin.room.index', [
'rooms' => $room
]);

相关内容

  • 没有找到相关文章