Как использовать сравнение при жадной загрузке связных данных?
Добавлено: 2021.11.12, 13:03
У меня есть таблица comment. Для каждого комментария из неё мне нужно получить следующий комментарий согласно условиям.
Я хочу использовать жадную загрузку, так как записей может быть очень много.
Однако в этом случае andOnCondition() берет значения только для первой записи в выборке. Эта часть sql будет выглядеть так.
Подскажите, плиз, как правильно решить эту задачу?
Код: Выделить всё
public function getNext()
{
return $this->hasOne(self::class, [
'bd_name' => 'bd_name',
'uid_client' => 'uid_client',
'remind_uid_user' => 'remind_uid_user',
])
->andOnCondition(['or',
[">", 'dt_remind', $this->dt_remind],
['and', ["=", 'dt_remind', $this->dt_remind], [">", 'tm_remind', $this->tm_remind]]
])
->orderBy(['dt_remind' => SORT_ASC, 'tm_remind' => SORT_ASC]);
}
Код: Выделить всё
$actions['index']['modifyQuery'] = function(CommentQuery $query) {
$query->with(['next']);
};
Код: Выделить всё
AND (("dt_remind" > '2019-06-17') OR (("dt_remind" = '2019-06-17') AND ("tm_remind" > '14:39:34')))