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