2017-07-19 31 views
0
做預先加載與搜索

我試圖做如何Laravel

Model::search($_POST['search_text'])->with('user')->get() 

但是,這並不工作,我得到了「法不存在」的錯誤(只是型號::搜索( $ _POST ['search_text']) - > get()確實有效,或者只是Classes :: where('id',2) - > with('user') - > get())。

如何在搜索結果上進行急切加載?

感謝

+0

我不知道的搜索功能是如何工作的,但我認爲它返回一個鍵或NULL,你需要一個模型來加載。你可以dd()你有什麼'Model :: search($ _ POST ['search_text']) - > get()'? – tompec

+0

把'with()'作爲鏈中的第一個方法,即Model :: with(...) - > search(...) - > get()' –

+0

@RossWilson給出一個erro r- Call to undefined方法Illuminate \ Database \ Query \ Builder :: search() – user6122500

回答

0

如果你想在請求進行搜索,然後更好地控制函數來創建

public static function search($request, $query){ 
    if($request->has('string')){ 
     $query->where('column', 'LIKE', '%'.$request->get('string').'%'); 
     } 
    } 

public function postIndex(Request $request){ 
    Model::where(function($query)use($request){ 
     $this->search($request, $query); 
    })->with('user')->get() 
}