Как использовать сравнение при жадной загрузке связных данных?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Icemar
Сообщения: 1
Зарегистрирован: 2015.07.23, 07:49

Как использовать сравнение при жадной загрузке связных данных?

Сообщение Icemar »

У меня есть таблица comment. Для каждого комментария из неё мне нужно получить следующий комментарий согласно условиям.

Код: Выделить всё

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']);
};
Однако в этом случае andOnCondition() берет значения только для первой записи в выборке. Эта часть sql будет выглядеть так.

Код: Выделить всё

AND (("dt_remind" > '2019-06-17') OR (("dt_remind" = '2019-06-17') AND ("tm_remind" > '14:39:34')))
Подскажите, плиз, как правильно решить эту задачу?
Ответить