如何从Eloquent的第三个关系表中获取所有相关的行?
问题描述:
我有三个表格,experiences
,images
和experience_images
。如何从Eloquent的第三个关系表中获取所有相关的行?
在experience_images
我有两列,experience_id
和image_id
。此表可以为一个经验,像这样持有大量图像:
"experience_id","image_id"
"6","31"
"6","32"
"6","33"
"6","34"
现在我该怎样运行Experience::find(6)->images
得到Image
集合从我Experience
模式?
答
你必须建立的关系,你的口才模型
class Experience extends Eloquent {
public function images(){
return $this->belongsToMany('Image', 'experience_images', 'experience_id', 'image_id');
}
}
答
你必须在paremeter发现添加ID()。在这种情况下是6:
$exp = Experience::find(6);
foreach($exp->images as $e){
return $e->somedata;
}
@Marwelln这些隐式外键真的有必要吗?通常情况下,您可以将它们留下,并按照惯例使用小写模型名称+'_id' – lukasgeiter 2014-10-29 09:07:06
在我的情况下,这是因为我的模型都被命名为'Model',但我猜它可能已被跳过,因为示例中的模型被命名'体验'和'图像'。如果你愿意,你可以恢复我的编辑。 – Marwelln 2014-10-29 09:24:12
嗯好的,我认为你有传统的型号名称 – lukasgeiter 2014-10-29 09:25:54