Задать вопрос
@kirill-93

Laravel. left join внутри with?

Есть дерево тегов, родительские теги, дочерние. Отношение многие ко многим.
Делаю выборку:
Tag::with(['tags' => function($query) {
            $query->orderBy('name');
        }])
        ->leftJoin('entity_tag', 'entity_tag.tag_id', '=', 'tags.id')
        ->select(\DB::raw('COUNT(entity_tag.id) as entity_count'), 'tags.*')
        ->get();

Мне нужно, чтобы у дочерних тегов тоже просчитывалось количество entity. Можно ли как-то добавить в условие with?
Примерно так нужно чтоб получилось:
Tag::with(['tags' => function($query) {
            $query->orderBy('name');
            ->leftJoin('entity_tag', 'entity_tag.tag_id', '=', 'tags.id')
            ->select(\DB::raw('COUNT(entity_tag.id) as entity_count'), 'tags.*')
        }])
        ->leftJoin('entity_tag', 'entity_tag.tag_id', '=', 'tags.id')
        ->select(\DB::raw('COUNT(entity_tag.id) as entity_count'), 'tags.*')
        ->get();
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы