Laravel посчитать количество отношений

346
04 апреля 2017, 13:06

Задача следующая - я делаю выборку из модели

$items = \App\Item::whereIn('id',[1,2,3,4]);

у каждого item есть отношение

public function relations() 
{
    return $this->hasMany(\App\Model\Relation::class);
}

и

public function user()
{
    return $this->belongsTo(\App\User::class,'user_id','id');
} 

Так вот, в мне нужно в любом виде (коллекция, массив и т.д.) получить количесво существующий отношений relations для каждого user.

У самого пока вариантов нет.

Answer 1

Тугодумы прости Господи. Пришлось воспользоваться обычным sql, а не заморачиваться с этим laravelем

$relations_count = \DB::table('items')
        ->leftJoin('relations', function($join)
                     {
                         $join->on('items.id', '=', 'relations.item_id');
                         $join->on('items.user_id','=','relations.user_id');
                     })
        ->select('items.id', \DB::raw('COUNT(relations.id) as relations_count'))
        ->whereIn('items.id', [1,2,3,4])
        ->groupBy('items.id')
        ->get();
READ ALSO
Ошибка миграции

Ошибка миграции

Таблица users

274
Ругается на конструкцию if

Ругается на конструкцию if

Почему выдаёт ошибку Parse error: syntax error, unexpected 'if' (T_IF)?

256