2424use Tymon \JWTAuth \JWTAuth ;
2525use Zhiyi \Plus \Models \User ;
2626use Illuminate \Http \Request ;
27+ use Zhiyi \Plus \Models \Taggable ;
2728use function Zhiyi \Plus \setting ;
2829use function Zhiyi \Plus \username ;
2930use 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