С учетом следующих моделей
Разговор : идентификатор, идентификатор_пользователя,
Сообщение : идентификатор, идентификатор_ беседы, идентификатор_пользователя, созданный_ат
Я хотел запросить все разговоры, у которых есть сообщения между $start
и $end
, поэтому я сделал это:
$filterMessages = function($query) use ($start, $end) {
$query->whereBetween("created_at", [$start, $end]);
};
$convs = Conversation::whereHas("messages", $filterMessages)
->with(["messages" => $filterMessages]);
И это работает.Теперь мне нужно добавить условие: message.user_id должен соответствовать user_id его разговора (как в whereHas, так и в with).Поэтому я изменил свой обратный вызов на это:
$filterMessages = function($query) use ($start, $end) {
$query->whereBetween("created_at", [$start, $end]);
$query->where("conversations.user_id", "author_id");
};
Но это не работает.Как я могу это сделать?
Спасибо