查询结果 laravel

Query results in laravel

我是 laravel 的新人,我想调试我遇到的问题。 我想查看对数据库的查询。

问题是在打印中它不是显示为查询,而是显示为结构。

$query = DealDsp::select('deal_dsp.dsp_id', 'dsp.name_display')
                    ->join('dsp', 'dsp.id', '=', 'deal_dsp.dsp_id')
                    ->join('deal', 'deal.deal_id', '=', 'deal_dsp.deal_id')
                    ->orderBy('dsp.name_display');
                    \Log::info('The query in line 106 is: ');  
                    dd($query);  

我只想知道 $query 最终将只有两列?或者因为存在 join 它包含 DealDsp table + dsp tabl + deal table?

中的所有字段

有没有办法将查询打印为 SQL 语句?

将 select 放在连接之后,最好使用 AS 声明每个查询名称。

$query = DealDsp::join('dsp', 'dsp.id', '=', 'deal_dsp.dsp_id')
                    ->join('deal', 'deal.deal_id', '=', 'deal_dsp.deal_id')
                    ->select([
                    'deal_dsp.dsp_id AS id', 
                    'dsp.name_display AS name'
                    ])
                    ->orderBy('dsp.name_display', 'ASC')
                    ->get();
                    \Log::info('The query in line 106 is: ');

如果我得到你,你想打印这个雄辩的mysql查询

您可以通过在语句末尾添加 ->to Sql() 来做到这一点

        $query = DealDsp::select('deal_dsp.dsp_id', 'dsp.name_display')
                ->join('dsp', 'dsp.id', '=', 'deal_dsp.dsp_id')
                ->join('deal', 'deal.deal_id', '=', 'deal_dsp.deal_id')
                ->orderBy('dsp.name_display')
                 ->toSql();
           dd($query);  

我猜您想查看 SQL 查询。您的 $query 实际上是“查询生成器”。你能试试这个吗:

$sql = $query->toSql(); 
dd($sql);