kohana 3.2 ORM find_all () с отношениями

У меня 3 таблицы:

artists{id,name} media{id,name,filename} media_artists{artist_id,media_id} 

Я создал модели с nn-отношениями, как описано в руководстве 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-> пуст)

Я видел на некоторых форумах что-то вроде этого может работать:

 $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 />"; } 

Если у вас есть отношение hipip в обеих моделях, которые определены следующим образом:

 // In artist model. protected $_has_many = array( 'media' => array('through' => 'media_artists'), ); // In media model. protected $_has_many = array( 'artists' => array('through' => 'media_artists'), ); 

Он должен работать с использованием (EDIT!):

 $artists = ORM::factory('artist')->find_all(); foreach ( $artists as $artist ) { foreach ( $artist->media->find_all() as $m ) { echo $m->name; } } 

У меня была такая же проблема в одном из моих проектов, и это решение работает для меня (Kohana 3.2.0).