with 加载, SQL是whereIn,会自动进行排序,如何使用 ORM 可以实现 leftjoin 的效果?
使用 leftJoin 可以实现查询的结果
$donorDetails = DonorDetail::query()
->where('user_id', 15578)
->leftJoin('projects', 'donor_details.project_id', '=', 'projects.id')
->orderBy('projects.created_at', 'desc')
->orderBy('donor_details.created_at', 'desc')
->get();
使用ORM with查询,projects 的数据不能正常排序。
$donorDetails = DonorDetail::query()
->where('user_id', 15578)
->with(['relationProject' => function (Builder $query) {
$query->select(['id', 'name', 'type', 'created_at'])->orderBy('created_at', 'desc');
}])
->orderBy('created_at', 'desc')
->get();
如何使用 ORM 可以实现 leftjoin 的效果?
翻译:30 个 Laravel Eloquent 的隐藏技巧
参考:快速入门《Laravel 9 中文文档》