【问题标题】:laravel query builder search all fieldslaravel 查询生成器搜索所有字段
【发布时间】:2020-03-20 21:15:21
【问题描述】:

伙计们,我需要有一个过滤器,可以在所有字段中使用 orWhere 进行验证,例如:用户?搜索 = Jhon 他必须检查名称、电子邮件中是否有 jhon .... 有人做过吗? 感激不尽

【问题讨论】:

  • 您可能需要将 orWhere() 语句与类似 mysql 的运算符结合使用。 User::query()->where('name', 'like', '%JHon%')->orWhere('email', 'like', '%JHon%')->get();跨度>
  • 向我们展示您迄今为止所做的尝试...以便更好地说明
  • 好的,但不存在确切的功能?示例搜索.. ?

标签: laravel laravel-query-builder


【解决方案1】:

与其他答案相同,您应该使用多个 orWhere() 来做到这一点 这是示例

$search = 'Jhon';
$conditions = ['name', 'email'];                          
$data = User::where(function ($query) use ($conditions, $search) {
    foreach ($conditions as $column)                                
        $query->orWhere($column, 'like', '%' . $search . '%');      
})->get(); 

【讨论】:

    【解决方案2】:

    你可以得到这种类型。

    $query = User::query();

    $columns = ['name', 'surname', 'address'];

    foreach($columns as $column){

    $query->orWhere($column, 'LIKE', '%' . $input . '%');

    }

    $users = $query->get();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 2011-04-17
      • 2022-01-18
      • 2018-02-21
      • 2018-07-13
      • 1970-01-01
      • 2013-06-01
      相关资源
      最近更新 更多