Laravel的ORM特殊操作!
举个例子:我们数据库设计的编码方式如果是ci,也就是说大小写不敏感的话,我们搜索的时候,搜索test,那么结果是Test,test,teST等等都出来,但是我们加上like binary的话,那么搜索出来的就是test,不管你的mysql数据库是什么编码排序规则。
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
|
# passthru : array :10 [▼
0 => “insert”
1 => “insertGetId”
2 => “getBindings”
3 => “toSql”
4 => “exists”
5 => “ count ”
6 => “min”
7 => “max”
8 => “avg”
9 => “sum”
]
#operators: array :26 [▼
0 => “=”
1 => “<”
2 => “>”
3 => “<=”
4 => “>=”
5 => “<>”
6 => “!=”
7 => “like”
8 => “like binary”
9 => “not like”
10 => “between”
11 => “ilike”
12 => “&”
13 => “|”
14 => “^”
15 => “<<”
16 => “>>”
17 => “rlike”
18 => “regexp”
19 => “not regexp”
20 => “~”
21 => “~*”
22 => “!~”
23 => “!~*”
24 => “similar to”
25 => “not similar to”
]
|
参考文件位置:
1
|
D:\phpStudy\WWW\BCCAdminV1.0\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php
|
1
2
3
4
5
6
7
8
|
protected $bindings = [
'select' => [],
'join' => [],
'where' => [],
'having' => [],
'order' => [],
'union' => [],
];
|
1
2
3
4
5
6
7
8
|
protected $operators = [
'=' , '<' , '>' , '<=' , '>=' , '<>' , '!=' ,
'like' , 'like binary' , 'not like' , 'between' , 'ilike' ,
'&' , '|' , '^' , '<<' , '>>' ,
'rlike' , 'regexp' , 'not regexp' ,
'~' , '~*' , '!~' , '!~*' , 'similar to' ,
'not similar to' ,
];
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public function index( $customer_type = null) {
$search = request( 'search' );
$perPage = request( 'perPage' ) ? request( 'perPage' ) : 10;
$customer_type = $customer_type ? $customer_type : request( 'customer_type' );
$data = Customer::select([ 'id' , 'email' , 'user_name' , 'nick_name' , 'status' , 'phone' , 'create_time' ])
->where( 'customer_type' , '=' , $customer_type )
->where( function ( $query ) use ( $search ) {
if ( $search ) {
$query ->where( 'user_name' , 'like binary' , '%' . $search . '%' )
->orWhere( 'nick_name' , 'like binary' , '%' . $search . '%' )
->orWhere( 'phone' , 'like binary' , '%' . $search . '%' )
->orWhere( 'email' , 'like binary' , '%' . $search . '%' );
}
})
->orderBy( 'create_time' , 'desc' )
->paginate( $perPage );
//追加额外参数,例如搜索条件
$appendData = $data ->appends( array (
'search' => $search ,
'perPage' => $perPage ,
));
return view( 'admin/customer/customerList' , compact( 'data' ));
}
|
以上这篇Laravel模糊查询区分大小写的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zhezhebie/article/details/78342153