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

如何将指定SQL语句转换为Laravel 5.5 Eloquent查询构建器格式?

Laravel 5.5 Eloquent 对应写法

我来帮你搞定这个问题!原SQL的核心逻辑是:筛选出包含standard关键词(标签、主题、详情、类型任意一个匹配)、ID在287到296之间且状态为激活的文章,最后按ID倒序排列。下面是能生成完全匹配原SQL的Eloquent写法:

use App\ArmArticle; // 假设你的模型类是ArmArticle,对应arm_articles表

$articles = ArmArticle::where(function ($query) {
    // 第一个条件组:多个字段的LIKE模糊匹配,用OR连接
    $query->where('article_tag', 'like', '%standard%')
          ->orWhere('article_topic', 'like', '%standard%')
          ->orWhere('article_details', 'like', '%standard%')
          ->orWhere('article_type', 'like', '%standard%');
})->where(function ($query) {
    // 第二个条件组:ID范围 + 激活状态,用AND连接
    $query->whereBetween('id', [287, 296])
          ->where('article_active', 1);
})->orderBy('id', 'desc')
  ->get(); // 换成->toSql()可直接查看生成的SQL语句

关键注意点

  • 必须用嵌套闭包包裹两个条件组:Laravel会自动为每个闭包添加括号,确保SQL的逻辑优先级和原语句完全匹配。如果省略闭包直接链式调用,会因为OR与AND的优先级差异导致逻辑错误。
  • 验证SQL的方法:调用->toSql()可以直接输出生成的SQL语句,方便你确认是否和原语句一致。

内容的提问来源于stack exchange,提问作者Okechukwu Eze

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:18:48