У меня возникли проблемы с объединением на нескольких столах в laravel - PullRequest
0 голосов
/ 08 апреля 2020

работает в веб-приложении группового чата с laravel

Я хочу выполнить поиск пользователя по определенной группе с его именем

, поэтому в основном есть три таблицы

пользователи -> id, timeline_id, email, pw

сроки -> id, fname, lname , p_no

page_user (определяет пользователя для определенной группы / страницы) -> id, page_id, user_id

page -> id, timeline_id, pg_name

когда я выполняю поиск по одной выбранной группе, запрос дает поиск по всему пользователю, а не из выбранной группы

`$page_members= DB::table('timelines')`
     `->join('users', 'timelines.id', '=', 'users.timeline_id')`    
     `->where('timelines.fname','LIKE','%'.$q.'%')`        ``
     `->orWhere('timelines.lname','LIKE','%'.$q.'%')`
     `->orWhere('users.email','LIKE','%'.$q.'%')`
     `->orderby('users.id', 'DESC')`
     `->get();`

где мне нужно сделать изменения; учитывая, что $page_id = 1; $ q - поисковое значение;

1 Ответ

0 голосов
/ 18 апреля 2020

$page_members= DB::table('timelines') ->join('users', 'timelines.id', '=', 'users.timeline_id') ->join('page_user', 'page_user.user_id', '=', 'users.id') ->select('users.*','timelines.*', 'timelines.name', 'timelines.lastname','timelines.username') ->where('timelines.name','LIKE','%'.$q.'%') ->where('page_user.page_id','=',$pgid) ->orWhere('timelines.lastname','LIKE','%'.$q.'%') ->where('page_user.page_id','=',$pgid) ->orWhere('users.primarycontactno','LIKE','%'.$q.'%') ->where('page_user.page_id','=',$pgid) ->orderby('users.id', 'DESC') ->get();

это сработало, но не знаю, почему ->where('page_user.page_id','=',$pgid) требовало больше времени, я что-то не так сделал? если я поставлю это только на первое место, то не будет работать для timeline.lastname и users.primarycontactno, если кто-нибудь оптимизировал решение, делитесь;)

...