1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 搜索参数: $filters['customs_document_remarks']比如:['T1','ATB', '..']
数据库: mysql customs_document_remarks 字段存储例如: ATC,ATB,Unbekannt,T1
查询需求: filters里的任意值匹配字段逗号隔开的任意值,即返回结果
可以在whereHas里做in_items的whereRaw查询。
// 海关文件备注 if (isset($filters['customs_document_remarks']) && $filters['customs_document_remarks']) { $data->whereHas('in_items', function ($query) use ($filters) { $sql = ''; foreach ($filters['customs_document_remarks'] as $customs_document_remarks) { if ($sql) { $sql .= ' OR '; } $sql .= 'FIND_IN_SET("' . $customs_document_remarks . '", customs_document_remarks)'; } $query->whereRaw($sql); }); }
|