есть вот такой запрос
$top_cats = ModArendaTree::find()->with('adscount')->where(['active' => 1])->andWhere(['parent_id' => 0])->orderBy(['popular' => SORT_DESC, 'sort' => SORT_DESC])->all();
определил связь в модели
public function getAdscount(){
return $this->hasMany(CatsForAds2::className(),['ad_id'=>'id'])->count();
}
однако выводит ошибку будто такой связи нет
app\modules\Tree\models\ModArendaTree has no relation named "adscount".
но есть в связи убираю "->count()" то все отлично работает... Почему так?
При построении запроса, метод ->with('adscount') ищет в ModArendaTree метод getAdscount() который возвращает экземпляр класса ActiveQuery.
Когда вы добавляете ->count(), метод будет пытаться вернуть уже число а не экземпляр класса, по этому строитель запроса его просто не находит.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости