或搜索中存在问题

时间:2016-11-26 04:10:34

标签: php search laravel-5.2 where

您正在搜索我的信息中心功能

  • CATALOG STYLES
  • SAVED STYLES

目录样式工作正常,但保存的样式是基于用户搜索的,有没有一种方法可以在一个andWhere()中搜索laravel中的哪里(某物)和哪里(另一件事)。

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和以下哪些陈述不是,或者我们如何做?

1 个答案:

答案 0 :(得分:1)

如果你想要它以便所有的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);