您的位置:首页 > 编程学习 > > 正文

laravel 获取数据库操作异常(Laravel Eloquent ORM 多条件查询的例子)

更多 时间:2021-10-11 00:40:49 类别:编程学习 浏览量:188

laravel 获取数据库操作异常

Laravel Eloquent ORM 多条件查询的例子

一、需求:

在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索。那么在model里就需要判断有那个字段组合,怎么组合。

网上找了很久,Laravel群里也问了几个,都说没有写过,于是自己写个吧。话不多说,见代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • function findByParam($param = array())
  •  {
  •   $select = new Customer();
  •   if (isset($param['name']) && '' != $param['name'])
  •   {
  •    $select = $select->where('customer.name', '=', $param['name']);
  •   }
  •   if (isset($param['phone']) && '' != $param['phone'])
  •   {
  •    $select = $select->where('customer.phone', '=', $param['phone']);
  •   }
  •   if (isset($param['email']) && '' != $param['email'])
  •   {
  •    $select = $select->where('customer.email', '=', $param['email']);
  •   }
  •   if (isset($param['tel']) && '' != $param['tel'])
  •   {
  •    $select = $select->where('customer.tel', '=', $param['tel']);
  •   }
  •   if (isset($param['qq']) && '' != $param['qq'])
  •   {
  •    $select = $select->where('customer.qq', '=', $param['qq']);
  •   }
  •   if (isset($param['IDCard']) && '' != $param['IDCard'])
  •   {
  •    $select = $select->where('customer.IDCard', '=', $param['IDCard']);
  •   }
  •    
  •   $customers = $select->leftJoin("member", function ($join)
  •   {
  •    $join->on("customer.memberID", "=", "member.id");
  •   })
  •    ->get(array(
  •    'customer.id',
  •    'customer.name',
  •    'customer.sex',
  •    'customer.tel',
  •    'customer.phone',
  •    'customer.address',
  •    'customer.email',
  •    'customer.qq',
  •    'customer.headPic',
  •    'customer.birthday',
  •    'customer.IDCard',
  •    'customer.enable',
  •    'customer.memberID',
  •    'customer.IDCard',
  •    'customer.info',
  •    'member.name as mname',
  •    'member.discount'
  •   ));
  •   return json_encode($customers);
  • 调用的时候,controller里只需要接收这些字段,无论它是否有值,直接加入到$param数组中查询就OK,例如:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • function anyFindbyparam()
  •  {
  •   $name = Input::get('name');
  •   $tel = Input::get('tel');
  •   $phone = Input::get('phone');
  •   $email = Input::get('email');
  •   $qq = Input::get('qq');
  •   $IDCard = Input::get('IDCard');
  •   $customer = new Customer();
  •   $customers = $customer->findByParam(array(
  •    'name' => $name,
  •    'tel' => $tel,
  •    'phone' => $phone,
  •    'email' => $email,
  •    'qq' => $qq,
  •    'IDCard' => $IDCard
  •   ));
  •   return $customers;
  •  }
  • 以上这篇Laravel Eloquent ORM 多条件查询的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/a437629292/article/details/44038411

    您可能感兴趣