产品模型
id (栏)
产品名称(栏)
ProductGallery模型
胆囊(栏)
产品d(栏)
画廊模型
id (栏)
imagename (列)
你好,我想要这样的检索数据,我的模型在上面
"id" => 1
productname => "product 1"
galleries => {
0 => {
id => 1,
imagename => 'image 1'
}
1 => {
id => 2,
imagename => 'image 2'
}
}如何利用关系来实现这一目标并进行优化?
发布于 2022-08-31 13:22:20
在你的模型上建立关系。
产品模型
public function galleries(){
return $this->belongsToMany(Gallery::class)
}在你的控制器上你可以得到这样的数据
Procuct::with('galleries')->get();发布于 2022-09-01 07:59:56
对于N到N(多到多)关系,需要使用belongsToMany()方法,如:https://laravel.com/docs/9.x/eloquent-relationships#many-to-many中所述
因此,在您的产品模型中,您将得到返回关系的节()方法,如下所示:
public function galleries(){
return $this->belongsToMany(Gallery::class);
}类似地,在图片库模型中,您将有一个products()方法:
public function products(){
return $this->belongsToMany(Product::class);
}如果您只想获得产品的库,则需要创建一个product,并调用galleries()方法:
$product = Product::find(1);
$product->galleries();或者,如果您想返回产品信息列表,包括它们的图库,您可以这样做:
$products = Products::with('galleries')->get();检查文档,这样您就可以获得关于其他选项的完整图片,例如使用自定义字段名等。
https://stackoverflow.com/questions/73555091
复制相似问题