From 4e3c19666453b8451d09f047775306b51d69e410 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 21 Oct 2015 14:49:09 -0700 Subject: [PATCH] Manager search for #1266 --- app/models/User.php | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/app/models/User.php b/app/models/User.php index 2d99d132fd..c44ebe25bd 100755 --- a/app/models/User.php +++ b/app/models/User.php @@ -80,7 +80,7 @@ class User extends SentryUserModel **/ public function manager() { - return $this->belongsTo('User','manager_id')->withTrashed(); + return $this->hasOne('User','manager_id')->withTrashed(); } @@ -208,17 +208,27 @@ class User extends SentryUserModel * * @return Illuminate\Database\Query\Builder Modified query builder */ - public function scopeTextsearch($query, $q) + public function scopeTextsearch($query, $search) { - return $query->where('first_name', 'LIKE', "%$q%") - ->orWhere('last_name', 'LIKE', "%$q%") - ->orWhere('email', 'LIKE', "%$q%") - ->orWhere('username', 'LIKE', "%$q%") - ->orWhere('notes', 'LIKE', "%$q%") - ->orWhere(function($query) use ($q) { - $query->whereHas('userloc', function($query) use ($q) { - $query->where('name','LIKE','%'.$q.'%'); + return $query->where('first_name', 'LIKE', "%$search%") + ->orWhere('last_name', 'LIKE', "%$search%") + ->orWhere('email', 'LIKE', "%$search%") + ->orWhere('username', 'LIKE', "%$search%") + ->orWhere('notes', 'LIKE', "%$search%") + ->orWhere(function($query) use ($search) { + $query->whereHas('userloc', function($query) use ($search) { + $query->where('name','LIKE','%'.$search.'%'); + }); + }) + + // This doesn't actually work - need to use a table alias maybe? + ->orWhere(function($query) use ($search) { + $query->whereHas('manager', function($query) use ($search) { + $query->where(function($query) use ($search) { + $query->where('first_name','LIKE','%'.$search.'%') + ->orWhere('last_name','LIKE','%'.$search.'%'); + }); }); });