我的代码是:
$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();在我将代码更改为:
$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总是如下所示
select * from `send_log` where (`group_id` = ?) order by `id` desc如你所见,类型params是disppear,我该如何处理呢?
发布于 2018-11-20 02:05:03
$type && $logMp->where('type', $type);或
$type && $logMp->where([['type' ,'=', $type]]);这是你的原始代码吗?因为设置$type然后将其用作where的运算符是没有实际意义的。
发布于 2018-11-20 03:45:37
尝试使用query()函数,而不是创建新对象:
$logMp = SendLog::query();
$type = 2;
$logMp->where('type', $type);
$logs = $logMp->where('group_id', $groupId)->orderBy('id', 'desc')->toSql();https://stackoverflow.com/questions/53380252
复制相似问题