首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel mult where will cover条件

laravel mult where will cover条件
EN

Stack Overflow用户
提问于 2018-11-20 01:59:10
回答 2查看 17关注 0票数 0

我的代码是:

代码语言:javascript
复制
   $type = 10;
   $logMp = new SendLog();
   $keyword && $logMp->where('msg', 'like', "%{$keyword}%");
   $type &&  $logMp->where(['type' =>  $type]);
   $logs = $logMp->where('group_id', $groupId)->orderBy('id', 'desc')->paginate($size, ['*'], 'page', $page)->toArray();

在我将代码更改为:

代码语言:javascript
复制
$logMp = new SendLog();
$type = 2;
$logMp->where('type', $type);
$logs = $logMp->where('group_id', $groupId)->orderBy('id', 'desc')->toSql();
print_r($logs);die;

为了便于转储sql,

但是,sql总是如下所示

代码语言:javascript
复制
select * from `send_log` where (`group_id` = ?) order by `id` desc

如你所见,类型params是disppear,我该如何处理呢?

EN

回答 2

Stack Overflow用户

发布于 2018-11-20 02:05:03

代码语言:javascript
复制
 $type &&  $logMp->where('type', $type);

代码语言:javascript
复制
 $type &&  $logMp->where([['type' ,'=', $type]]);

这是你的原始代码吗?因为设置$type然后将其用作where的运算符是没有实际意义的。

票数 0
EN

Stack Overflow用户

发布于 2018-11-20 03:45:37

尝试使用query()函数,而不是创建新对象:

代码语言:javascript
复制
$logMp = SendLog::query();
$type = 2;
$logMp->where('type', $type);
$logs = $logMp->where('group_id', $groupId)->orderBy('id', 'desc')->toSql();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53380252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档