【发布时间】:2020-01-22 11:50:06
【问题描述】:
看看下面的查询:
$testQuery = Customer::where('company_id', auth()->user()->company_id);
$testQuery
->where('name', 'like', '%test%')
->orWhere('age', '>', 22);
dd($testQuery->toSql());
这会产生以下 SQL 查询:
select * from
customerswhere (company_id= ? andnamelike ? orage> ?) 和customers.deleted_at为空
我所追求的是这样的:
从
customers中选择 *company_id= ?和 (name喜欢 ? 或age> ?) 和customers.deleted_at为空
我怎样才能做到这一点?即company_id = ? 的第一个条件比name 和age 上的其他过滤器更重要?
现在,根据查询构建器构建查询的方式,我看到的结果来自其他 company_id,而不是我在查询中指定的那个。
【问题讨论】:
-
你使用的是什么版本的 Laravel?
-
我使用的是 laravel 6。
标签: php sql laravel eloquent query-builder