【发布时间】:2018-11-19 08:47:45
【问题描述】:
我有Order 与另一个关系OrderPhoto 的模型:
public function OrderPhoto()
{
return $this->hasMany('App\OrderPhoto');
}
反过来OrderPhoto模型有关系:
public function Photo()
{
return $this->belongsToMany('App\Photo');
}
那么,如何从OrderModel 获取数据以及来自第三模型Photo 的相关数据?
我猜是这样的:
Order::with("OrderPhoto.Photo")->get();
仅从Photo 模型中为每个Order 检索数据
所以,每个Order 都有一些OrderPhotos。关系是一对多的。
但OrderPhotos 中的一项与表Photos 中的主键相关。这是一对一的关系。
我的结果查询应该是:
select `photos`.*, `ordersphoto`.`Orders_Id` from `photos` inner join `ordersphoto` on `ordersphoto`.`Photos_Id` = `photos`.`Id` where `ordersphoto`.`Orders_Id` in (1);
这个查询如何使用hasManyThrough?
【问题讨论】:
-
OrderPhoto-Photo 真的是多对多的关系吗?对我来说没有多大意义。
-
可以使用
with获取查询中的相关表。看看this。 Order::with('related_table_name')->get(); -
我需要通过另一个模型连接模型
-
似乎订单照片应该是照片和订单之间的中间表。否则没有多大意义。
-
@OPV 提供四个 (?) 表中的数据样本和您想要的输出。