[英]Laravel - Has Many Through
我正在尝试使用Laravel 5.3的具有多次通过选项来编写数据库查询
我的数据库表的布局如下:
http://sqlfiddle.com/#!9/a9c9af
这些表是:
公司company_offers提供
在我的模型中,我具有以下设置:
public function offers()
{
return $this->hasManyThrough(
'App\Offers', 'App\CompanyOffers',
'company_offer_id', 'offer_id'
);
}
当我尝试运行以下代码行时:
return $this->whereHas('offers', function($query) use ($offer_id)
{
return $query->whereIn('offer_id', $offer_id);
});
我得到了错误:
违反完整性约束:1052 where子句中的列“ offer_id”不明确
如何解决这个问题并建立正确的关系?
我需要获取前端视图的商品标题和商品图标 。
希望这有意义并且有人可以帮助我。
谢谢
“其中where子句不明确的列'offer_id'”基本上意味着SQL查询正在处理多个表,并且不知道offer_id
指的是哪个表:
例如,查询可能正在执行类似的操作
select offers.* from offers
left join another_table on another_table.field = offers.field
where offer_id = ?
请注意, offer_id
在上表中可以指一列在offers
或another_table
。
您应该采取的纠正错误的措施是在offer_id
加上一个表名。 像这样:
return $this->whereHas('offers', function($query) use ($offer_id) {
return $query->whereIn('other_table.offer_id', $offer_id);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.