1
我嘗試爲用戶創建搜索引擎。搜索將包含多個字段,以便用戶可以選擇他想要的任何內容並獲得結果。合併多個查詢(Laravel 5)
routes.php文件:
Route::get('search/{tag?}/{town?}/{education?}/{contract?}', '[email protected]');
DisplayJobs.php控制器
public function getSearch($tag = null, $town = null, $education = null, $contract = null)
{
//get already database values to send them to the form
$tags = \App\Tag::lists('name', 'id');
$contract = \App\Contract::lists('name', 'id');
$towns = \App\Town::lists('name', 'id');
$education = \App\Education::lists('name', 'id');
$tagQueryBuilder = Tag::query();
$townQueryBuilder = Town::query();
$educationQueryBuilder = Education::query();
$contractQueryBuilder = Contract::query();
if(Input::has('tag'))
{
$tagQueryBuilder->TagOfUser(Input::get('tag'));
}
if(Input::has('town'))
{
$townQueryBuilder->TownOfUser(Input::get('town'));
}
if(Input::has('education'))
{
$educationQueryBuilder->EducationOfUser(Input::get('education'));
}
if(Input::has('contact'))
{
$contractQueryBuilder->ContactOfUser(Input::get('contact'));
}
return view('main.search_jobs', compact('tags', 'towns', 'contract', 'education'));
}
如果我嘗試用它完美的每個單獨的查詢,但我想綜合作用的結果數據從所有查詢或一次查詢所有數據的方式。
在每一個模型,我有我的查詢範圍是這樣(Tag.php)型號:
public function jobs()
{
return $this->belongsToMany('App\Job');
}
public function scopeTagOfUser($query, $tag)
{
return $query->where('id', '=', $tag)->with('jobs');
}
你的問題不明確。你想要所有查詢的組合結果數據,還是想要一種方法一次查詢所有數據?此外,'\ App \ Something :: lists('name','id');'工作,這讓我想知道,你甚至沒有運行代碼? – JSelser
謝謝你的回覆。所有代碼\ App \ Something :: lists('name','id');完美的作品,我嘗試過。我只想結合所有查詢的結果數據或一次查詢所有數據的方法。 –
此外,它適用於每個單一的查詢。 –