【发布时间】:2020-12-23 13:32:55
【问题描述】:
我正在尝试在关系中搜索,而我的查询是
$records = Store::orderBy($columnName,$columnSortOrder)
->where('store_id', 'like', '%' .$searchValue . '%')
->whereHas('customer', function ($query) use ($searchValue) {
$query->where('name', 'like', '%' .$searchValue . '%');
})
->select('*')
->skip($start)
->take($rowperpage)
->get();
并返回一个查询
SELECT * FROM `store` WHERE `store_id` LIKE '%San%' AND EXISTS ( SELECT * FROM `customers`
WHERE `store`.`customer_id` = `customers`.`id` AND `name` LIKE '%San%') ORDER BY
`inv_id` ASC LIMIT 10 OFFSET 0
我想要的是或与关系
SELECT * FROM `store` WHERE `store_id` LIKE '%San%' OR EXISTS ( SELECT * FROM `customers`
WHERE `store`.`customer_id` = `customers`.`id` AND `name` LIKE '%San%') ORDER BY
`inv_id` ASC LIMIT 10 OFFSET 0
【问题讨论】:
-
我认为您只需将 whereHas() 更改为 orWhere()
标签: php mysql laravel-5 eloquent