Я бы хотел запросить в БД все события, для которых после даты начала не было создано комментария. Следующая структура для события и комментария
EVENT
id
start
created_at
updated_at
COMMENT
id
comment
event_id
created_at
updated_at
Создайте запрос ($ query = Event :: query () -> with ('comments');), который дает мне следующую конструкцию.
[{
"id": 1,
"start": "2018-06-18 12:00:00",
"created_at": "2018-06-18 11:50:07",
"updated_at": "2018-07-02 12:13:15",
"comments": [
{
"id": 1,
"created_at": "2018-06-18 12:44:35",
"updated_at": "2018-06-18 12:44:35",
"comment": "cascsac"
}
]
}]
Я хочу получить все записи, где comment.created_at находится после даты начала события. Я пробовал со следующим:
$query->orWhere(function ($query) {
$value = $query->where(function ($query) use ('start') {
$query->whereHas('comments', function ($query) use ('start') {
$query->where('created_at','<=','start');
//->whereColumn('created_at', '<=', 'start');
});
});
});
Но мне не нравятся мои попытки передать начало вложенному запросу, и я не уверен, как передать его для запроса whereColumn.
Как передать значения из столбцов во вложенное куда.
Или как еще я могу запросить a со значением отдельного столбца.
Редактировать1
По запросу весь запрос
$ запрос
Event::query()->with('comments');
$query->orWhere(function ($query) {
$value = $query->where(function ($query) use ('start') {
$query->whereHas('comments', function ($query) use ('start') {
$query->where('created_at','>=','start');
//->whereColumn('created_at', '>=', 'start');
});
});
});
$events = $query->get();
Передача переменной $ start тоже будет работать, но я не могу преобразовать значение столбца start в переменную $ start, чтобы пропустить вложенный запрос