Есть две связанные таблицы.
author: id | name
book: id | author_id | title
Есть код, который выводит список авторов и количество книг каждого из них:
class AuthorController extends Controller {
public function actionIndex() {
$authors = Author::find()->select(['author.id', 'author.name', 'books' => 'count(*)'])
->leftJoin('book', 'author.id = book.author_id')
->groupBy('author.id')->asArray()->all();
return $this->render('index', ['authors' => $authors]);
}
}
Представление:
<?php foreach($authors as $author){
echo '<h2>'.$author['name'].'</h2>';
echo '<p>Книг: '.$author['books'].'</p>';
}
?>
Изломал всю голову как модефицировать код так, чтобы можно было вывести не количество книг, а их список. То есть примерно вот так сделать:
Автор 1:
- книга 1
- книга2
- книга3
Автор 2:
- книга 1
- книга 2
и т.п.
Где "Автор N" - это name из таблицы author, а "книга N" - title'ы из таблицы book.
Моей квалификации на это дело не хватает. Подскажите как можно модифицировать приведенный выше код или как можно сделать это каки-то иным способом?