首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel whereHas到实际模型,而whereHas对该相关模型不起作用

Laravel whereHas到实际模型,而whereHas对该相关模型不起作用
EN

Stack Overflow用户
提问于 2018-02-15 07:48:40
回答 1查看 429关注 0票数 1

我有三张桌子:

交易模型:

代码语言:javascript
复制
class Deal extends Model
{
    protected $guarded = ['id'];

    public function hotel() {
        return $this->belongsTo('App\Hotel');
    }
}

酒店模式:

代码语言:javascript
复制
class Hotel extends Model
{
    public function room(){
        return $this->hasMany('App\Room');
    }

    public function deal(){
        return $this->hasMany('App\Deal');
    }
}

房间模式:

代码语言:javascript
复制
class Room extends Model
{

    public function hotel(){
        return $this->belongsTo('App\Hotel');
    }

}

下面的查询工作正常,

代码语言:javascript
复制
return $greatDeals = Deal::whereHas('hotel', function ($query) {
                $query->Where('astatus', 1)->Where('status', 0);
            })->get();

但我想查询的“酒店”模型中有“房间”模型,但下面的查询显示错误,这种查询格式正确吗?

代码语言:javascript
复制
 return $greatDeals = Deal::whereHas('hotel', function ($query) {
                    $query->whereHas('room', function ($query) {
                        $query->Where('astatus', 1)->Where('status', 0);
                    })->get();
                })->get();

错误:

代码语言:javascript
复制
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'deals.hotel_id' in 'where clause' (SQL: select * from `hotels` where `deals`.`hotel_id` = `hotels`.`id` and exists (select * from `rooms` where `hotels`.`id` = `rooms`.`hotel_id` and `astatus` = 1 and `status` = 0)) ◀"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-15 07:49:33

删除第一个get()

代码语言:javascript
复制
Deal::whereHas('hotel', function ($query) {
        $query->whereHas('room', function ($query) {
            $query->where('astatus', 1)->where('status', 0);
        });
    })->get();

或者这样做:

代码语言:javascript
复制
Deal::whereHas('hotel.room', function ($query) {
        $query->where('astatus', 1)->where('status', 0);
    })->get();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48802245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档