orWhere issues in search

orWhere issues in search

您好,我正在搜索我的仪表板功能

目录样式运行良好,但保存的样式是基于用户搜索的,有没有一种方法 where is a andWhere() 可以在 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),我们希望它是 a 而后面的 where 语句不是 or,我们该怎么做?

如果您希望将所有 OR WHERE 组合在一起,那么您可以将它们放在带有函数的 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);