首页 > 解决方案 > Laravel 雄辩的双连接返回空

问题描述

我有一个 laravel 雄辩的数据库查询,我想根据链式连接返回结果。

$replies = DB::table('model_replies')
                                ->join('support_tickets', function($join){
                                        $join->on('model_replies.model_id', '=', 'support_tickets.id');
                                        $join->where('model_replies.model', '=', DB::raw('"SupportTicket"'));
                                        })
                                ->join('produce_requests', function($join){
                                        $join->on('model_replies.model_id', '=', 'produce_requests.id');
                                        $join->where('model_replies.model', '=', DB::raw('"ProduceRequest"'));
                                        })

                                ->get();

我按照此处文档中的示例进行操作

问题是当我按照此处的建议链接连接语句时,我的查询没有给出任何结果。

单个连接工作得很好。但我需要能够链接其中的几个。

双连接不起作用

我可能做错了什么?

谢谢!

标签: mysqllaraveleloquentlaravel-8

解决方案


如果我理解正确的话。你想为support_tickets那些model_repliesmodel_replies.model = SupportTicket

DB::table('model_replies')
     ->leftJoin('support_tickets', function($join){
          $join->on('model_replies.model_id', '=', 'support_tickets.id');
          $join->on('model_replies.model', '=', DB::raw('"SupportTicket"'));
      })
      ->leftJoin('produce_requests', function($join){
          $join->on('model_replies.model_id', '=', 'produce_requests.id');
          $join->where('model_replies.model', '=', DB::raw('"ProduceRequest"'));
       })
       ->get();

推荐阅读