gpt4 book ai didi

Laravel Eloquent ORM 多条件查询的例子

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Laravel Eloquent ORM 多条件查询的例子由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、需求:

在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索。那么在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 。

最后此篇关于Laravel Eloquent ORM 多条件查询的例子的文章就讲到这里了,如果你想了解更多关于Laravel Eloquent ORM 多条件查询的例子的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com