Добрый день.
Есть комментарии к статьям, мне нужно достать комментарии за последние 7, 28 дней.
сейчас я сделал так:
Article model:
public function getComments7(){
return $this->hasMany(Comments::className(), ['page_id' => 'id'])->andWhere('date > DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)');
}
public function getComments28(){
return $this->hasMany(Comments::className(), ['page_id' => 'id'])->andWhere('date > DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)');
}
и уже в with() при выборке подставляю нужное мне, но проблема вся к том, что обращаться к коментариям нужно по разному
->comments7 и ->comments28, что не очень удобно
Пытался сделать с JoinWith и уже в условии писать за какой период мне нужны комментарии, но результат вообще пуст.
Какие варианты есть кроме LeftJoin, чтобы достать страницы и последние комментарии к ним ?
Не хочу костылить и делать криво косо, потому спрашиваю как лучше поступить)