如何使用具有多个 table 的会话和使用 Laravel 的 where 子句进行搜索?
How to search using session with multiple table with where caluse using Laravel?
如何操作?
**此代码有效**
$posts = NewJob::with(['client_info','office_info'])
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
============================================= ===========================
但是当我添加更多 where 子句然后显示空白结果时。
$posts = NewJob::with(['client_info','office_info'])
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->where('proj_name', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
这样就可以了。
您也可以根据需要使用一个 orWhere 条件而不是两个。
$posts = NewJob::with('client_info','office_info')
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->orWhere('proj_name', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
对于连接意味着说关系,你可以这样做。
我已经为你的一个模型编写了代码,你可以像这样为其他模型编写代码,你也可以在 with()
函数中使用闭包函数。您也可以在不同型号上使用 orWhereHas
。
$posts = NewJob::whereHas('client_info', function($query){
$query->where('something','is_something'); //query conditions on other table
$query->orWhere('something','is_something');
})
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->orWhere('proj_name', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
如何操作?
**此代码有效**
$posts = NewJob::with(['client_info','office_info'])
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
============================================= =========================== 但是当我添加更多 where 子句然后显示空白结果时。
$posts = NewJob::with(['client_info','office_info'])
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->where('proj_name', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
这样就可以了。 您也可以根据需要使用一个 orWhere 条件而不是两个。
$posts = NewJob::with('client_info','office_info')
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->orWhere('proj_name', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);
对于连接意味着说关系,你可以这样做。
我已经为你的一个模型编写了代码,你可以像这样为其他模型编写代码,你也可以在 with()
函数中使用闭包函数。您也可以在不同型号上使用 orWhereHas
。
$posts = NewJob::whereHas('client_info', function($query){
$query->where('something','is_something'); //query conditions on other table
$query->orWhere('something','is_something');
})
->orderBy('won', 'desc')
->where('progress' , 'forwarded')
->where('won', 'like', '%' . $request->session()->get('search') . '%')
->orWhere('proj_name', 'like', '%' . $request->session()->get('search') . '%')
->paginate(5);