сгруппировать результат, полученный через find - laravel eloquent - PullRequest
1 голос
/ 15 марта 2019

У меня есть таблица с именем generalmembers .У меня есть col с именем designation_name , который я хочу сгруппировать.

Проблема, с которой я сталкиваюсь, заключается в том, что я использую отношения Eloquent, которые дают результат на основе идентификатора,

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

Приведенный выше запрос дает мне результат, но как мне сгруппировать результат на основеОбозначение_имя,

@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 голосов
/ 15 марта 2019

Спасибо всем, кто нашел время, чтобы ответить на мой вопрос. Я очень ценю это.

Я нашел обходной путь, вместо того, чтобы работать с контроллером, я взял его на лезвие.

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

Я ценю, если это рекомендуется.

0 голосов
/ 15 марта 2019

Вы должны использовать это, если вы ожидаете несколько предметов:

$generalmembers = Generalpresident::with('generalmembers')
                                  ->where('id','=', $id)
                                  ->groupBy('designation_name')
                                  ->get();
0 голосов
/ 15 марта 2019

Попробуйте:

Generalmembers::whereHas('generalpresidents',function($q){
  $q->where('id',2);
})->select('designation_name')->groupBy('designation_name)->get();
0 голосов
/ 15 марта 2019

Попробуйте:

$generalmembers = Generalpresident::findOrFail($id)->generalmembers()->groupBy('designation_name');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...