laravel orm mult где покроет состояние - PullRequest
0 голосов
/ 19 ноября 2018

мой код:

   $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 не отображается, как я могу справиться с этим?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Попробуйте использовать функцию query() вместо создания нового объекта:

$logMp = SendLog::query();
$type = 2;
$logMp->where('type', $type);
$logs = $logMp->where('group_id', $groupId)->orderBy('id', 'desc')->toSql();
0 голосов
/ 19 ноября 2018
 $type &&  $logMp->where('type', $type);

ИЛИ

 $type &&  $logMp->where([['type' ,'=', $type]]);

Это ваш оригинальный код?Что касается установки $ type, то использование его в качестве оператора для оператора where не имеет смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...