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);
您好,我正在搜索我的仪表板功能
- 目录样式
- 已保存样式
目录样式运行良好,但保存的样式是基于用户搜索的,有没有一种方法 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);