【问题标题】:Laravel 5: sorting child recordsLaravel 5:对子记录进行排序
【发布时间】:2015-08-28 12:03:18
【问题描述】:

它不对子记录进行排序。我在数据库中有一个名为order 的字段 这是我的代码:

$offer = Offer::find($id);
$offer->service->sortBy('order', true);

return $offer;  

虽然如果我使用 sortBy,我会得到一系列服务,但如果没有它,则只有 JSON 数据。

任何想法为什么它不排序?先感谢您。 如果您需要额外的代码,请告诉我。

【问题讨论】:

  • sortBy的第二个参数不是true/false,而是int $options = SORT_REGULAR
  • 你可以添加这个作为正确答案,谢谢。

标签: php laravel laravel-5 eloquent


【解决方案1】:

sortBy的第二个参数不是true/false,而是int $options = SORT_REGULAR。 Laravel 可能不知道如何处理您的 true 值。

【讨论】:

    【解决方案2】:

    注意:我假设 $offer->serviceOneToMany/ManyToMany 关系 - 顾名思义,它不是,但如果你期望一系列服务那么它必须是 OneToMany/ManyToMany 关系。

    为了获得按顺序排序的服务,您需要以这种方式加载报价:

    $offer = Offer::with(['service' => function($builder) {
      $builder->sortBy('order');
    }])->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2018-04-25
      • 1970-01-01
      相关资源
      最近更新 更多