代码之家  ›  专栏  ›  技术社区  ›  max234435

laravel 5.2搜索查询

  •  0
  • max234435  · 技术社区  · 10 年前

    这是我最近遇到的问题。我正在尝试在我的应用程序中实现搜索,我知道如何使用搜索表中的关键字 where('firstname', 'LIKE', %$search%) 诸如此类。然而,如何根据用户指定的标准缩小搜索范围。对于exlample,搜索$keyword,同时搜索$city和$pricePoint。

    我只是想弄清楚如何在php中构造查询,这样,如果用户指定$关键字并搜索城市,如果用户只指定$关键词,则查询的城市方面不存在。

    1 回复  |  直到 10 年前
        1
  •  3
  •   Arkandias    10 年前

    假设有三个标准:$keyword、$city和$pricePoint。您可以这样做:

    $query = DB::table('users');
    if (!empty($keyword)) {
        $query = $query->where('keyword', 'LIKE', '%'.$keyword.'%');
    }
    if (!empty($city)) {
        $query = $query->where('city', 'LIKE', '%'.$city.'%');
    }
    if (!empty($pricePoint)) {
        $query = $query->where('pricePoint', 'LIKE', '%'.$pricePoint.'%');
    }
    $results = $query->get();
    

    当然,您可以通过创建一个条件列表并使用循环遍历它们,而不是添加另一个if条件,从而使其更通用。