将通过查找获取的结果分组-laravel雄辩

时间:2019-03-15 07:33:11

标签: sql database laravel laravel-5 eloquent

我有一个名为 generalmembers 的表。我有一个要分组的 designation_name 列。

我面临的问题是我使用了雄辩的关系,该关系基于ID带来结果,

$generalmembers = Generalpresident::findOrFail($id)->generalmembers;

上面的查询为我提供了结果,但是如何根据designation_name将结果分组

@foreach ($generalmembers as $generalmember)
    <tr>
        <td>
            {{$generalmember->first_name}}
        </td>
        <td> 
            {{$generalmember->generaldesignations->designation_name}} 
        </td>
    </tr>
@endforeach

关系:

class Generalpresident extends Model
{
    public function generalmembers(){
        return $this->hasMany('App\Generalmembers', 'president_id' , 'id');
    }
}


class Generalmembers extends Model
{
   public function generalpresidents(){
        return $this->belongsTo('App\Generalpresident','president_id');
    }
}

我该怎么做?

4 个答案:

答案 0 :(得分:0)

尝试:

$generalmembers = Generalpresident::findOrFail($id)->generalmembers()->groupBy('designation_name');

答案 1 :(得分:0)

如果需要多个项目,则应使用此选项:

$generalmembers = Generalpresident::with('generalmembers')
                                  ->where('id','=', $id)
                                  ->groupBy('designation_name')
                                  ->get();

答案 2 :(得分:0)

尝试:

Generalmembers::whereHas('generalpresidents',function($q){
  $q->where('id',2);
})->select('designation_name')->groupBy('designation_name)->get();

答案 3 :(得分:0)

感谢所有花时间回答我的问题的人。对此,我真的非常感激。

我确实找到了一种解决方法,而不是在控制器上工作,而是将它带到了刀片服务器上。

@foreach ($generalmembers->groupby('designation_name') as $generalmember)
     @foreach ($generalmember as $item)
       {{$item->first_name}}
     @endforeach
@endforeach

如果建议您这样做,我将不胜感激。