繁体   English   中英

Laravel-经历了很多

[英]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在上表中可以指一列在offersanother_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM