2016-11-26 19 views
0

嗨正在尋找我的儀表盤功能orWhere問題

  • 目錄STYLES
  • 救了STYLES

目錄樣式可以正常使用,但保存的風格是基於用戶搜索,是有一種方法可以用來搜索laravel中的where(something)和where(another thing)。

public function search(){ 

    $wsSearch = Input::get('search'); 

    $term = $wsSearch; 

    // search catalogue style 

    $searchedCatalogueStylesCount = Cataloguestyle::where('catalogue_style_name','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_categories','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_style_description','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_sub_categories','LIKE','%'.$term.'%') 
    ->count(); 

    $searchedCatalogueStyles = Cataloguestyle::where('catalogue_style_name','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_categories','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_style_description','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_sub_categories','LIKE','%'.$term.'%') 
    ->paginate(50); 

    // search saved style 

    $searchedSaveStylesCount = Savestyle::where('user_id',Auth::user()->id) 
    ->orWhere('catalogue_style_name','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_categories','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_style_description','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_sub_categories','LIKE','%'.$term.'%') 
    ->count(); 

    $searchedSaveStyles = Savestyle::where('user_id',Auth::user()->id) 
    ->orWhere('catalogue_style_name','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_categories','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_style_description','LIKE','%'.$term.'%') 
    ->orWhere('catalogue_sub_categories','LIKE','%'.$term.'%') 
    ->paginate(50); 

    Session::flash('searchTerm',$term); 

    // return Redirect::to('/search') 
    return view('main_app.dashboard.search') 
    ->with(['searchedCatalogueStyles' => $searchedCatalogueStyles, 
      'searchedSaveStyles' => $searchedSaveStyles, 
      'searchedCatalogueStylesCount' => $searchedCatalogueStylesCount, 
      'searchedSaveStylesCount' => $searchedSaveStylesCount 
      ]); 

} 

如果在$searchedSaveStyles變量仔細觀察,你會看到where('user_id',Auth::user()->id),我們希望它是一個和下面,語句沒有或,我們怎麼辦呢?

回答

1

如果你想要讓所有的或者的分組,那麼你會把他們一個WHERE裏面有一個功能,像這樣:

$searchedSaveStyles = Savestyle::where('user_id',Auth::user()->id) 
    ->where(function($q) { 
    $q->orWhere('catalogue_style_name','LIKE','%'.$term.'%') 
     ->orWhere('catalogue_categories','LIKE','%'.$term.'%') 
     ->orWhere('catalogue_style_description','LIKE','%'.$term.'%') 
     ->orWhere('catalogue_sub_categories','LIKE','%'.$term.'%'); 
    })->paginate(50); 
+0

這是它給了我的語法錯誤,意外「}」 ,順便說這就是我想要實現http://stackoverflow.com/questions/19325312/laravel-eloquent-multiple-where-clause-query?rq=1 – udemethegrtman

+0

我忘了';',現在試試 – Sane

+0

謝謝@Sane「我愛你」。 – udemethegrtman