【发布时间】:2021-09-07 22:33:29
【问题描述】:
在 Laravel 中,我想构建如下查询。
有一个status column,值应该是0或1。
还有另一列,device_ids 和 array。
现在,在查询中,我想在device_ids 上应用不同的逻辑,当状态为0 且状态为1。
有人可以建议我最好的方法吗?
$builder->where('status','0')->whereJsonDoesntContain('device_ids', $imei_id->id)
$builder->where('status','1')->whereJsonContains('device_ids', $imei_id->id)
如何将两者结合起来?
$all_applications = $builder->where('status', $model->status)
->when($status, function ($query) {
Log::error("One");
return $query->whereJsonContains('device_ids', 107); },
function($query) {
Log::error("Zero"); return $query
->whereJsonDoesntContain('device_ids', 107); });
如果我使用 $model->status ,它会给我类似“未定义变量:模型”的错误
【问题讨论】:
-
你能展示一下到目前为止你尝试了什么吗?
-
你的问题不清楚,你的意思是“应用不同的逻辑”?你想获取什么信息,在什么条件下?
-
$builder->orderBy('weight', 'desc')->where('progress','complete')->whereJsonDoesntContain('device_ids', $imei_id->id);
-
这里如果status = 1,我要申请,whereJsonContains
-
我更新了问题