У меня есть 3 таблицы:
artists{id,name}
media{id,name,filename}
media_artists{artist_id,media_id}
Я создал модели с n-n отношениями, как описано в руководстве по Kohana.
Когда я делаю в контроллере:
$artist_view = new View('artists/profile');
$artist_id = $this->request->param('id');
$artist_view->artists = $artist_model->where('id', '=', $artist_id)->find();
$artist_view->media = $artist_model->media->find_all();
все работает нормально, и я могу назвать записи СМИ, связанные с этим конкретным исполнителем, на мой взгляд.
Теперь я хочу сделать запрос, в котором я получаю, что все художники со связанными с ними медиа-файлами имеют одинаковый результат sql, но я не могу найти синтаксис.
Это:
$artist_view->artists = $artist_model->order_by('name' , 'ASC')->find_all();
$artist_view->media = $artist_model->media->find_all();
не работает (не выдает ошибку, но $ artist_view-> media пусто)
Я видел на некоторых форумах, что что-то подобное может работать:
$artist_model->order_by('name' , 'ASC')->with('media')->find_all();
но у меня это не работает.
На мой взгляд, в конце я хочу иметь возможность сделать что-то вроде этого:
foreach($artists as $a){
echo $a->name."<br />";
foreach($a->media as $m) echo $m->name."<br />";
echo "<br />";
}