Таблица соединения базы данных Laravel с предложением where и подобным из $ request - PullRequest
0 голосов
/ 18 января 2019

public function search(Request $request)
    {
        
        if ($request->get('search') != '') {


            $franchise = DB::table('operators')
                ->join('franchises', function ($join) {
                    $join->on('operators.id', '=', 'franchises.operator_id')
                        ->where('case_number', 'like', '%' . $request->get('search') . '%');
                })
                ->get();


            return view('franchise-home', compact('franchise'));

        } else {

            $franchise = DB::table('operators')
                ->join('franchises', 'operators.id', '=', 'franchises.operator_id')
                ->get();

            return view('franchise-home', compact('franchise'));
        }

    }

как заставить это работать с предложением where и получать запрос от пользователя? Буду признателен за любую оказанную помощь. спасибо.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Ниже приведен код сортировки

public function search(Request $request) {
    $franchise = DB::table('operators')
         ->join('franchises', 'operators.id', '=', 'franchises.operator_id')
         ->when($request->get('search'), function($query) use($request) {
               $query->where('case_number', 'like', '%' . $request->get('search');
         })
         ->get();
    return view('franchise-home', compact('franchise'));
}
0 голосов
/ 18 января 2019

Вам нужно добавить use () для доступа к вашей переменной, например:

$search = $request->get('search'); // define it before query
...
->join('franchises', function ($join) use($search) { //use it inside
    $join->on('operators.id', '=', 'franchises.operator_id')
         ->where('case_number', 'like', '%' . $search . '%');
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...