Skip to content

Commit 6035fdc

Browse files
committed
feat: Add using Tags find users
1 parent 7843397 commit 6035fdc

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

app/Http/Controllers/APIs/V2/UserController.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use Tymon\JWTAuth\JWTAuth;
2525
use Zhiyi\Plus\Models\User;
2626
use Illuminate\Http\Request;
27+
use Zhiyi\Plus\Models\Taggable;
2728
use function Zhiyi\Plus\setting;
2829
use function Zhiyi\Plus\username;
2930
use Zhiyi\Plus\Models\VerificationCode;
@@ -50,6 +51,7 @@ public function index(Request $request, ResponseFactoryContract $response, User
5051
$since = $request->query('since', false);
5152
$name = $request->query('name', false);
5253
$fetchBy = $request->query('fetch_by', 'id');
54+
$tags = $request->query('tags', []);
5355

5456
$users = $model
5557
->when($since, function ($query) use ($since, $order) {
@@ -64,6 +66,13 @@ public function index(Request $request, ResponseFactoryContract $response, User
6466
->when($name && $fetchBy === 'username', function ($query) use ($name) {
6567
return $query->whereIn('name', array_filter(explode(',', $name)));
6668
})
69+
->when(is_array($tags) && ! empty($tags), function ($query) use ($tags) {
70+
return $query->whereHas('tags', function ($query) use ($tags) {
71+
$taggableTable = (new Taggable)->getTable();
72+
73+
return $query->whereIn($taggableTable.'.tag_id', $tags);
74+
});
75+
})
6776
->limit($limit)
6877
->orderby('id', $order)
6978
->get();

0 commit comments

Comments
 (0)