在我的控制器中,我在数据库查询中使用Laravels WhereNullOrWhereWhereRaw。它正在提取所有结果,但问题在于它看起来像是在提取所有内容,而忽略了最后一个Where子句。我在其他控制器上以其他方法使用了它,并且效果很好。是否有特定的订单或我缺少的东西?

不起作用(忽略WhereRaw并显示所有结果)

$lists = DB::table('statuses')
                    ->whereNull('company_id')
                    ->orWhere('company_id', '=', Auth::user()->company_id)
                    ->whereRaw("FIND_IN_SET('Task',assigned_to)")
                    ->get();


这在没有whereRaw的其他控制器中也可以用作其他方法:

return Status::whereNull('company_id')->orWhere('company_id', '=', Auth::user()->company_id)
                    ->orderBy('created_at', 'asc')
                    ->get();


样本数据库
php - Laravel:WhereNull或OrWhere忽略WhereRaw-LMLPHP

源链接:https://laravel.com/docs/5.3/queries#where-clauses

最佳答案

使用DB::raw代替whereRaw

->where(DB::raw("FIND_IN_SET('Task',assigned_to)"))

关于php - Laravel:WhereNull或OrWhere忽略WhereRaw,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43107827/

10-11 03:37