我对此感到困惑。我有两个复选框,即修指甲和修脚
当用户选择修指甲ajax运行,然后我想从所有行中找到修指甲词,像这样:-

enter code here
id   name
 1    Get Manicure
 2    Manicure & Pedicure
 3    Repair Manicure
 4    Get Pedicure
 5    Dummy text


现在假设我的桌子上有五个记录
当用户单击“修指甲”复选框时,我希望它必须返回1,2,3 id
当用户单击修指甲和修脚时,我想要1,2,3,4记录
当用户单击修脚时,仅返回2,4 id
谁能帮助我实现此功能。这是我的代码

enter code here
$query = Service::whereIn('name',array('Pedicure'))->get();// Only pedicure
$query = Service::whereIn('name',array('Manicure'))->get(); // Only manicure
$query = Service::whereIn('name',array('Manicure','pedicure'))->get(); //Both


我认为这可能与之间使用forloop的条件一起使用

最佳答案

像这样更改您的查询

//$searchArray = ['Manicure'];
//$searchArray = ['pedicure'];
$searchArray = ['Manicure','pedicure'];
$query = new Service();
$isFirst = true;
foreach($searchArray as $string){
    if($isFirst){
        $query->where('name','like','%'.$string.'%');
        $isFirst = false;
    }else{
        $query->orWhere('name','like','%'.$string.'%');
    }
}
$result = $query->get();

08-25 17:17