【问题标题】:Eloquent order relationship results雄辩的顺序关系结果
【发布时间】:2018-04-30 19:50:58
【问题描述】:

我有一个简单的 eloquent 查询,想在我的结果中包含另一个表,但是,关系结果的顺序不正确。

是否可以在不使用SQLRAW 语句的情况下对结果进行排序

$groups = AttributeGroup::with('attribute')->where('page_id', $page->id)->get();

我想要什么 -

$groups = AttributeGroup::with('attribute')->orderBy('iteration', 'DESC')->where('page_id', $page->id)->get();

我收到Unknown column 的错误,因为此列是关系表的一部分。

【问题讨论】:

  • 您要订购属性关系结果吗?
  • 抱歉更新得更清楚了。是的,我希望订购关系结果

标签: php laravel laravel-5 eloquent


【解决方案1】:

这将对每个属性组结果的每个属性关系排序:

$groups = AttributeGroup::with(['attribute' => function ($query) {
    $query->orderBy('iteration', 'DESC');
}])->where('page_id', $page->id)->get();

这是你想要达到的目标吗?

【讨论】:

    【解决方案2】:

    在使用withhas 时,您可以使用闭包来更改查询。

    $groups = AttributeGroup::with(['attribute' => function($query){
        $query->orderBy('iteration');
    })->where('page_id', $page->id)->get();
    

    详情请见https://laravel.com/docs/5.6/eloquent-relationships#constraining-eager-loads

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 2018-11-07
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多