【问题标题】:laravel 5.2 search querylaravel 5.2 搜索查询
【发布时间】:2017-03-04 07:38:15
【问题描述】:

这是我最近遇到的问题。我正在尝试在我的应用程序中实现搜索,并且在使用 where('firstname', 'LIKE', %$search%) 等在您的表中搜索关键字时,我知道该怎么做。但是,我将如何根据用户指定的条件来缩小搜索范围。例如搜索 $keyword 以及 $city 和 $pricePoint。

我只是想弄清楚如何在 php 中构造查询,以便如果用户指定 $keyword 和它搜索的城市,并且如果用户只指定 $keyword,则查询的城市方面是不存在。

项目基于 Laravel 5.2 和 mysql 数据库。任何帮助表示赞赏。

【问题讨论】:

    标签: php mysql laravel laravel-5.2


    【解决方案1】:

    假设有 3 个条件:$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 条件来使某些东西更通用。

    【讨论】:

    • 工作就像一个魅力!你为我节省了更多时间的挫败感。
    • 我不想显得我要求太多,但你知道当你在表单上执行 get 方法提交时如何不将空输入字段包含到 url 中搜索?
    • 您需要使用 JavaScript。您可以看到该帖子提供了一种可能的方法:billerickson.net/code/hide-empty-fields-get-form
    • 感谢您的回复和帮助!
    • 是否可以将上面的示例与用户模型一起使用而不是 DB::table('users');
    猜你喜欢
    • 2017-05-15
    • 2018-05-16
    • 1970-01-01
    • 2016-12-15
    • 2016-09-15
    • 2016-10-26
    • 1970-01-01
    • 2021-08-23
    • 2018-10-21
    相关资源
    最近更新 更多