0
我有3個表:Kohana的3.2 ORM find_all()與關係
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->媒體爲空)
我已經看到了一些論壇這樣的事情可能工作:
$artist_model->order_by('name' , 'ASC')->with('media')->find_all();
但它不適用於我。
在我看來,到了最後,我希望能夠做一些事情是這樣的:如果你在定義兩個模型的relationhsip
foreach($artists as $a){
echo $a->name."<br />";
foreach($a->media as $m) echo $m->name."<br />";
echo "<br />";
}
這就是我在我的模型中...我在文檔中閱讀它,所以我已經這樣...我不明白爲什麼它不工作... – Piero
奇怪的是,它適用於當我使用 - >查找()在一個藝術家,但沒有與find_all()... – Piero
嗯,但有一刻我錯過了什麼(見編輯):$ artist-> media-> find_all()必須使用。你在你的SQL方案中創建了關係(使用外鍵等,當你使用MySQL時)? –