Выглядит как доска объявлений.
Пользователи могут создавать «каналы» и
Вы можете войти в «Канал» и написать «Сообщить»
Отсюда.
Я создал «Канал»
Он будет внесен в модель каналов
Когда я присоединяюсь к «каналу», созданному кем-то другим, я вхожу в модель Channel_joins.
Просто
в модели канала
Такая информация как имя канала, создатель и т. д.
Модель объединения каналов содержит только идентификатор канала и идентификатор пользователя, и каждый идентификатор связан с внешним ключом.
Я объединяю " каналы", которые я создал, и "Каналы", на которые я подписался, отображаются в виде списка
Код приведен ниже
Код: Выделить всё
$joins = $this->channelJoins()
->join('channels', 'channel_joins.channel_id', '=', 'channels.id')
->get();
$channels = $this->channels()
->leftJoin('channel_joins', 'channels.id', '=', 'channel_joins.channel_id')
->select('channels.*', 'channel_joins.channel_id', 'channel_joins.user_id')
->get();
$vals = collect($joins)->merge($channels);
- Показать название канала
Количество людей, подписанных на канал
При проверке с помощью dd() $list состоит из одной коллекции и существует две модели. В нем «App\Models\Channels» и «App\Models\Channel_joins».
[img]https://i.sstatic. net/6N0IV.png[/img]
В случае модели канала название канала не является проблемой, но проблема состоит в том, чтобы напечатать количество подписанных людей.
На всякий случай модели объединения каналов, проблема с выводом имени канала.
I
Код: Выделить всё
@forelse ($posts as $list)
[url={{ route(]id) }}">{{ $list->name }}[/url]
Count:
{{-- {{ dd($list) }}--}}
{{ ($list->count('user_id')) }}
EA
@endforeach
Вот
Код: Выделить всё
Channels Table

Код: Выделить всё
Channel Joins Table

Код: Выделить всё
Users Table

Спасибо за ответ
У меня есть один канал под названием a, но на картинке он выводится как два.
Кроме того, количество людей, которые на канал а подписано 2, а на остальные каналы 0-1 люди. На рисунке показано неправильное значение.
как правильно изменить мой запрос?

Подробнее здесь: https://stackoverflow.com/questions/701 ... lationship