Laravel 如何从第三个关系表中获得所有相关行?
我有三张表,Laravel 如何从第三个关系表中获得所有相关行?,laravel,laravel-4,eloquent,laravel-5,Laravel,Laravel 4,Eloquent,Laravel 5,我有三张表,体验,图像和体验_图像 在experience\u images中,我有两列,experience\u id和image\u id。此表可以容纳一次体验的多个图像,如下所示: "experience_id","image_id" "6","31" "6","32" "6","33" "6","34" 现在,我如何通过运行Experience::find(6)->images,从我的Experience模型中获取images的集合?您必须在雄辩的模型中建立关系 class Exper
体验
,图像
和体验_图像
在experience\u images
中,我有两列,experience\u id
和image\u id
。此表可以容纳一次体验的多个图像,如下所示:
"experience_id","image_id"
"6","31"
"6","32"
"6","33"
"6","34"
现在,我如何通过运行
Experience::find(6)->images
,从我的Experience
模型中获取images
的集合?您必须在雄辩的模型中建立关系
class Experience extends Eloquent {
public function images(){
return $this->belongsToMany('Image', 'experience_images', 'experience_id', 'image_id');
}
}
您必须在参数表find()中添加一个id。在本例中为6:
$exp = Experience::find(6);
foreach($exp->images as $e){
return $e->somedata;
}
@这些隐式外键真的有必要吗?通常你可以离开它们,按照惯例,它采用小写的model name+“\u id”,在我的例子中,这是因为我的两个模型都被命名为
model
,但我猜它可能被跳过,因为你的例子中的模型被命名为Experience
和Image
。如果愿意,您可以还原我的编辑。啊,好的,我假设您有传统的模型名称,我将其命名为App\Models\Experience\model
:-)