Где, как не работает внутри foreach л oop в laravel - PullRequest
0 голосов
/ 21 января 2020

Где-то вроде не работает внутри foreach l oop в Laravel. Следующее всегда возвращает null. Здесь я хочу использовать мульти сортировку, но ответ всегда пуст.

public function searchBy(Request $request)
{ 
    if($request->name!=''){ 
       $data['name']=$request->name;
    }

    if($request->s_name!=''){
       $data['short_name']=$request->s_name;
    }

    if($request->pin!=''){
        $data['pin_code']=$request->pin;
    }

    if($request->city!=''){
       $data['city']=$request->city;
    }

    $customers = Customer::get();

    foreach ($data as $key => $value) {
        // return $key;
       $customers = $customers->where($key,'LIKE','%'.$value.'%');
    }

    return response()->json([
        'data' =>$customers,
    ]);
}

1 Ответ

0 голосов
/ 21 января 2020

Переменная $customers должна быть QueryBuilder, и в конце вы должны вызвать get () для ее получения.

$customers = Customer::query();

foreach ($data as $key => $value) {
    $customers->where($key,'LIKE','%'.$value.'%');
}

return response()->json([
    'data' => $customers->get(),
]);

QueryBuilder - это объект, который разработан передать по ссылке, для этого вам не нужно переназначать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...