【发布时间】:2018-08-06 05:07:33
【问题描述】:
如何将此 SQL 转换为 Laravel5.5 Eloquent 格式
select * from 'arm_articles' where ('article_tag' like '%standard%' or 'article_topic' like '%standard%' or 'article_details' like '%standard%' or 'article_type' like '%standard%') and ( ('id' between 287 and 296) and 'article_active' = 1) order by 'id' desc
请注意 SQL 中的大括号
这是我写的,当我使用 ->toSql
测试输出时返回不同的 sql$post= PostModel::where('article_tag','like','%'.$contributor_id.'%')->orWhere('article_topic','like','%'.$contributor_id.'%')->orWhere('article_details','like','%'.$contributor_id.'%')->orWhere('article_type','like','%'.$contributor_id.'%')->whereBetween('id', [$end, $start-1])->where('article_active',1)->orderBy('id', 'desc')->take(10)->get();
从上面的查询中找到 SQL 输出
select * from 'arm_articles' where 'article_tag' like ? or 'article_topic' like ? or 'article_details' like ? or 'article_type' like ? and 'id' between ? and ? and 'article_active' = ? order by 'id' desc limit 10
此输出看起来像所需的 SQL,但不同的是 SQL 上的大括号。所以一个硬币 Eloquent Query Builder 出来的查询括号?
【问题讨论】:
-
您也可以在 oder 中使用这个在线工具将您的原始 SQL 转换为 Laravel Builder:midnightcowboycoder.com