Yii2 сортировка по количеству связанных материалов?

Есть такое. Выбираются теги в месте с страницами к которым этот тег привязан.
Но мне нужно не выбирать весь список, а просто подсчитаь количество привязанных материалов + сортировать по этому количеству
public function getPages()
    {
        return $this
            ->hasMany(Page::className(), ['id_page' => 'id_page'])
            ->viaTable(TagJoinPage::tableName(), ['id_tag' => 'id_tag']);
    }

    public function getDataProvider()
    {
        return new ActiveDataProvider(['query' => self::find()->joinWith(['pages'])]);
    }
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Комментировать
kowap
@kowap Автор вопроса
Сделал с помощью SqlDataProvider
public function getDataProvider()
	{
		return new SqlDataProvider([
			'sql' => 'select `tag`.*, (select count(*) from `tag_join_page` where `tag_join_page`.`id_tag` = `tag`.`id_tag`) as `total` from `tag` order by `total` DESC',
			'pagination' => [
				'pageSize' => 50
			]
		]);
	}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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