You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求将指定SQL语句转换为完整的Laravel Query Builder代码

完善后的Laravel Query Builder代码

这里需要注意原SQL中JOIN pams_developer的条件包含AND和OR,由于SQL中AND优先级高于OR,我们必须用闭包正确分组条件,避免逻辑偏差。完整代码如下:

DB::table('pams_users')
    ->select('pams_users.display_name', 'pams_user_levels.description')
    ->join('pams_developer', function ($join) {
        // 分组处理逻辑:(用户通过developer_id关联到ID=27的开发者) OR (用户parent_dev直接等于27)
        $join->where(function ($subQuery) {
            $subQuery->whereColumn('pams_users.developer_id', 'pams_developer.id')
                     ->where('pams_developer.id', 27);
        })->orWhere('pams_users.parent_dev', 27);
    })
    ->join('pams_user_levels', function ($join) {
        $join->on('pams_user_levels.id', '=', 'pams_users.user_level')
             ->where('pams_user_levels.id', 6);
    })
    ->groupBy('pams_users.display_name')
    ->get();

代码细节说明:

  • select方法:精准指定查询字段,完全对应原SQL的SELECT部分。
  • 第一个join闭包:用嵌套闭包包裹AND条件,确保逻辑和原SQL一致;使用whereColumn比较两个表的字段值,是Laravel推荐的字段对比写法。
  • 第二个join闭包:同时关联用户等级表并过滤等级ID为6的记录,和原SQL的JOIN ON子句完全匹配。
  • groupBy方法:按照display_name分组,与原SQL的GROUP BY逻辑一致。
  • get():执行查询并返回Eloquent集合形式的结果集。

内容的提问来源于stack exchange,提问作者Ho Wei Kang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:05:08