На примере этого кода:
$books = Books::find()
->joinWith(['reviews'])
->select(['books.id','books.name', 'COUNT(reviews.id) as cnt'])
->groupBy('books.id')
->orderBy('books.name')
->all();
Как вывести(получить) id, name и количество всех отзывов (cnt)?
Как и у обычного запроса, в переменной $books будет массив с объектами Books, только чтобы вывести cnt нужно создать публичный метод:
class Books extends ActiveRecord {
public $cnt;
//Дальше ваш класс
}
И потом просто получаете данные:
foreach ($books as $book) {
echo 'Book ID: ' . $book->id . PHP_EOL;
echo 'Book name: ' . $book->name . PHP_EOL;
echo 'Reviews: ' . $book->cnt . PHP_EOL;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей