Laravel - 按关系属性对父列表进行排序

问题描述 投票:0回答:1

我正在尝试对带有修改日期的订单列表进行排序,但它没有使用此代码进行排序。请指导。

class Order extend Model
{
    public function revise()
    {
        return $this->hasOne(Revise::class,'order_id');
    }
}

class Revise extend Model
{
    public function order()
    {
        return $this->belongsTo(Order::class,'id');
    }
}

Order::with('revise')->orderBy('revise.date','asc')->paginate(15); //Now orders are not being 
php laravel eloquent laravel-10 eloquent-relationship
1个回答
1
投票

Eloquent 不会这样排序,因为它分别加载模型和关系。也许你应该以这种方式使用连接;

Order::join('revises', 'orders.id', '=', 'revises.order_id')
        ->orderBy('revises.date', 'asc')
        ->with('revise')
        ->paginate(15);
© www.soinside.com 2019 - 2024. All rights reserved.