Laravel 如何处理带括号或编码的位置?
我想用自由文本进行过滤,这意味着用户可以键入任何他们想过滤的内容。所以,当用户输入我在下面输入的内容时。所以,我想按照这个逻辑过滤它们Laravel 如何处理带括号或编码的位置?,laravel,eloquent,Laravel,Eloquent,我想用自由文本进行过滤,这意味着用户可以键入任何他们想过滤的内容。所以,当用户输入我在下面输入的内容时。所以,我想按照这个逻辑过滤它们 Free text = "abc def,ghi jkl" ... AND ( (report.name like '%abc%' AND report.name like '%def%') OR (bom_functions.name like '%abc%' AND bom_functions.name li
Free text = "abc def,ghi jkl"
...
AND
(
(report.name like '%abc%' AND report.name like '%def%')
OR
(bom_functions.name like '%abc%' AND bom_functions.name like '%def%')
OR
(report.name like '%ghi%' AND report.name like '%jkl%')
OR
(bom_functions.name like '%ghi%' AND bom_functions.name like '%jkl%')
)
有人能帮我吗 试试下面的代码,它应该可以工作
$model->where(function ($query) {
return $query
->where(function ($a) {
return $a
->where('report.name', 'like', '%abc%')
->where('report.name', 'like', '%def%');
})
->orWhere(function ($b) {
return $b
->where('bom_functions.name', 'like', '%abc%')
->where('bom_functions.name', 'like', '%def%');
})
->orWhere(function ($c) {
return $c
->where('report.name', 'like', '%abc%')
->where('report.name', 'like', '%def%');
})
->orWhere(function ($d) {
return $d
->where('bom_functions.name', 'like', '%ghi%')
->where('bom_functions.name', 'like', '%jkl%');
});
});
我没有正确理解你的问题,但我认为这可以帮助你。 您可以在Laravel中使用
或where
$freetext = "abc def,ghi jkl"
....
where(function ($query) use ($freetext) {
$query->orWhere('report.name', 'LIKE', '%' . $freetext . '%')
->orWhere('bom_functions.name', 'LIKE', '%' . $freetext . '%')
}
请把你的问题再详细一点。你的问题非常模糊。先生,@AhmadKarimi我已经更新了我的问题。你能检查一下吗?