From 3e0717c339f7987f61fc28a239184215a1c5937e Mon Sep 17 00:00:00 2001 From: wuyanwen Date: Mon, 13 Jan 2020 21:23:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=90=9C=E7=B4=A2=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- catch/user/model/UserSearch.php | 19 +++++++++++++++++++ catch/user/model/Users.php | 24 ++++++++++-------------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/catch/user/model/UserSearch.php b/catch/user/model/UserSearch.php index b3d9bbc..517aae5 100644 --- a/catch/user/model/UserSearch.php +++ b/catch/user/model/UserSearch.php @@ -1 +1,20 @@ whereLike('username', $value); + } + + public function searchEmailAttr($query, $value, $data) + { + return $query->whereLike($this->aliasField('email'), $value); + } + + public function searchStatusAttr($query, $value, $data) + { + return $query->where($this->aliasField('status'), $value); + } +} diff --git a/catch/user/model/Users.php b/catch/user/model/Users.php index d9909f8..9dd814c 100644 --- a/catch/user/model/Users.php +++ b/catch/user/model/Users.php @@ -1,15 +1,18 @@ field(['id', 'username', 'email', 'status','last_login_time','last_login_ip', 'department_id','created_at', 'updated_at']) - ->when($search['username'] ?? false, function ($query) use ($search){ - $query->whereLike('username', '%' . $search['username'] . '%'); - }) - ->when($search['email'] ?? false, function ($query) use ($search){ - $query->whereLike('email', '%' . $search['email'] . '%'); - }) - ->when($search['status'] ?? false, function ($query) use ($search){ - $query->where('status', $search['status']); - }) - ->order('id', 'desc') + ->withoutField(['updated_at'], true) + ->catchSearch() + ->catchLeftJoin(Department::class, 'id', 'department_id', ['department_name']) + ->order('users.id', 'desc') ->paginate($search['limit'] ?? $this->limit); }