Извинения, если название неясно, я не знаю, как это сказать ..
Я создаю функцию поиска для фильтрации заказов. Каждому заказу присваивается идентификатор пользователя или родительский идентификатор (если пользователь является дочерним пользователем), который используется для связи заказов с пользователями.
Например: идентификатор пользователя, имя, продукт, доставка.
Моя проблема в том, что поиск по имени и т. Д. Будет возвращать все результаты с этим именем независимо от того, связан ли вы с идентификатором.
Так что мне по сути нужно: где идентификатор пользователя или парентид = текущий идентификатор пользователя
с последующими условиями поиска: имя в другом месте, продукт в другом месте или доставка в другое место = условие поиска.
В настоящее время у меня это работает, проверяя БД на все совпадения с поисковыми терминами, а затем сбрасывая данные в моем контроллере, чтобы вывести только те, которые соответствуют идентификатору пользователя или парентиде. Есть лучший способ сделать это?
Контроллер заказа
$data = app('App\Http\Controllers\DbController')->getordersbysearch($search);
foreach($data as $row => $key){
if($key->Userid != $id || $key->parentid != $id){
unset($data[$row]);
}
else{
$key->Response = json_decode($key->Response);
}
dbcontroller
public function getordersbysearch($search){
$result = DB::table('orders')->where("Name", 'like', '%' . $search['search'] . '%')->orWhere("product", 'like', '%' . $search['search'] . '%')->orWhere("delivery", 'like', '%' . $search['search'] . '%')->get();
return $result;
}