Size: a a a

Laravel для начинающих

2021 March 15

SG

Sergey Gerasimov in Laravel для начинающих
HahahImFaus
Но задача не в этом )
В чем задача? Взять всех юзеров, с которыми были диалоги
источник

SG

Sergey Gerasimov in Laravel для начинающих
Ты говоришь - получаешь 2х
источник

SG

Sergey Gerasimov in Laravel для начинающих
Если будет 100 сообщений - то ты всё равно получишь 2х, 2ой - это твой юзер
источник

SG

Sergey Gerasimov in Laravel для начинающих
Его нужно отсеить
источник

SG

Sergey Gerasimov in Laravel для начинающих
Для этого нужно использовать where
источник

H

HahahImFaus in Laravel для начинающих
Sergey Gerasimov
Я же даже код показал:
User::query()->whereHas('messages', function ($query) use ($currentUser) {
   $query->where('scholarship', '!=', $currentUser->id);
});
Этим ты как бы полностью искореняешь диалог
источник

SG

Sergey Gerasimov in Laravel для начинающих
HahahImFaus
Этим ты как бы полностью искореняешь диалог
Какой диалог?
источник

SG

Sergey Gerasimov in Laravel для начинающих
Sergey Gerasimov
Используй условие, логично же. whereHas messages where scholarship != currentUser->id
ВОТ КОД
источник

SG

Sergey Gerasimov in Laravel для начинающих
Я его тебе скинул
источник

H

HahahImFaus in Laravel для начинающих
HahahImFaus
Этим ты как бы полностью искореняешь диалог
То-есть если я написал кому-то этого не будет, а если мне написал этот же чел это будет
источник

SG

Sergey Gerasimov in Laravel для начинающих
Если ты не понял что значит whereHas messages where scholarship != currentUser->id
источник

SG

Sergey Gerasimov in Laravel для начинающих
HahahImFaus
То-есть если я написал кому-то этого не будет, а если мне написал этот же чел это будет
Для этого я и сказал сделать 2 связи
источник

SG

Sergey Gerasimov in Laravel для начинающих
В твоей архитектуре - пока только так
источник

SG

Sergey Gerasimov in Laravel для начинающих
Когда поймешь как работает - тогда будешь уже пытаться усложнять
источник

H

HahahImFaus in Laravel для начинающих
🤦‍♂️)
источник

SG

Sergey Gerasimov in Laravel для начинающих
Сделай диалоги. Связь диалогов с юзером через пивот
источник

SG

Sergey Gerasimov in Laravel для начинающих
И тогда всего 1 связь будет
источник

SG

Sergey Gerasimov in Laravel для начинающих
Но возникнет проблема другая, потому что нужно разобраться для начала как работают связи, как их можно фильтровать
источник

SS

Serg Serdyuk in Laravel для начинающих
Sergey Gerasimov
Сделай диалоги. Связь диалогов с юзером через пивот
и опять придет к whereHas с условием)
источник

SS

Serg Serdyuk in Laravel для начинающих
Но диалоги реально проще сделать чем через одну таблицу городить
источник