des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Yii2 как ограничить выборку hasmany?

в модели
public function getNews()
{
    return $this->hasMany(News::class, ['id' => 'news_id'])->viaTable('news_trademark', ['trademark_id' => 'id']);
}

а
$trademark->news->orderBy(['created_at' => SORT_DESC])->limit(4)->all()

не работает
  • Вопрос задан
  • 689 просмотров
Решения вопроса 1
fornit1917
@fornit1917
Вот так надо:

$trademark->getNews()->orderBy(['created_at' => SORT_DESC])->limit(4)->all()


Когда вы обращаетесь к проперте news, под капотом уже выполняется запрос и возвращается результат.
Поэтому надо обращаться к методу getNews() - он вернет объект query на который вы сможете навесить дополнительные условия и потом вызвать all() уже.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы