我有两张桌子
一个是另一个产品的产品
products
---------
id | offer_id
offers
---------
id | product_id
现在我想获得针对产品的所有优惠
在我写的产品模型中
public function getOfferDetails()
{
return $this->belongsTo('App\Offer');
}
但它返回null。
答案 0 :(得分:0)
您希望获得属于offers
的所有product
,对吧?你试过这个:
public function getOfferDetails()
{
return $this->hasMany('App\Offer');
}
在Product
型号中?
答案 1 :(得分:0)
需要定义您的人际关系。根据你拥有的东西
产品可以有0个 - 多个优惠,优惠属于1个产品。
您需要一些外键来匹配模型。 OTB Laravel将尝试使用附加了_id的方法名作为外键。由于方法名称不同,因此需要将外键作为关系方法中的第二个参数传递。
产品型号应
public function getOfferDetails()
{
return $this->hasMany('App\Offer', 'product_id');
}
优惠模型应
public function getProduct()
{
return $this->belongsTo('App\Product', 'product_id');
}
Laravel Documentation也可能有所帮助。
答案 2 :(得分:0)
我认为这就是你要找的东西:
public function getOfferDetails()
{
return $this->hasMany('App\Offer', 'id', 'offer_id');
// as ceejayoz mentioned in comments, Laravel should be able to detect this themselves. The below would work the exact same as above
// return $this->hasMany('App\Offer', 'id', 'offer_id')
}
$product->getOfferDetails()->get();