在hasMany模型上排序

时间:2019-04-09 10:14:54

标签: laravel-5.8

我有两个桌子

位置和服务

我之间有hasMany关系,一个位置有很多服务。

我在“服务”表上有一个字段“ sort_order”,并希望以此对服务进行排序。我过滤了结果,但只需要让它们在服务表的“ sort_order”字段上排序即可。

位置模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Location extends Model
{
    protected $table ='location';

    public function sorter(){
      return ($this->hasMany(Sorter::class));
    }

}

服务模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Sorter extends Model
{
    protected $table = 'sorter';


}

控制器

public function getSort($id){

      $tenantId = $id;

      $filtered = Location::with(['sorter' => function($query) use ($tenantId) {

        $query->where('tenant_id', $tenantId)->orderBy('sort_order', 'asc');
      }])->orderBy('sortersort_order')->get();

      foreach($filtered as $dat){
        foreach($dat->sorter as $d){
          echo($d .  '<br />');
        }

      }

    return view('sorter')->with('data', $filtered);
    }


我想返回服务表中对sort_order字段排序的结果

0 个答案:

没有答案