У меня есть программа для обмена услугами между людьми.В основном я сталкиваюсь с проблемой, пытаясь получить разговоры между пользователями.Идея такова: моя программа позволяет пользователям предлагать услуги другим пользователям, а также приобретать услуги у других пользователей.Каждый пользователь может зарегистрировать неограниченное количество услуг.Когда пользователь находит услугу, которую хочет получить, он создает сделку и начинает разговор с контрагентом.Структура моих таблиц следующая (я включаю только столбцы отношений):
Таблица пользователей
id // This is the user identifier
Таблица услуг
id // This is the service identifier
user_id // This is the identifier of the user who created the service
Таблица сделок
id // This is the deal identifier
user_id // This is the identifier of the user acquiring the service
service_id // This is the identifier of the service being acquired in this deal
Таблица бесед
id // This is the identifier of the conversation
deal_id // This is the identifier of the deal that the conversation belongs to
Вот моя проблема: я хочубыть в состоянии извлечь разговоры для каждого пользователя, как в качестве заявителя, так и в качестве продавца.
Я создал это отношение (в User.php
) для разговоров, в которых пользователь получает услугу:
public function conversationsApplicant(){
return $this->hasManyThrough( Conversations::class, Deal::class );
}
Я хотел бы также создать функцию messagesSeller ()
public function conversationsSeller(){
return $this->????;
}
Я предполагаю, что должен добавить какую-то связь между разговором и службой в Service.php
.Это было бы что-то вроде $this->services()->with( 'deals' )->with( 'conversations' );
Конечной целью было бы иметь метод, который возвращает оба отношения в одном $user->conversations()->get()
.
public function conversations(){
return $this->conversationsApplicant() + $this->conversationsSeller();
}