Задать вопрос
@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();
  • Вопрос задан
  • 173 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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