Files
besttechfrom.eu/app/Http/Controllers/UserSearchController.php
T

35 lines
874 B
PHP
Raw Normal View History

2026-10-17 16:04:25 +03:00
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UserSearchController extends Controller
{
/**
* Search users by name (only public identifiers are returned).
*/
public function __invoke(Request $request): JsonResponse
{
$q = trim((string) $request->query('q', ''));
if (mb_strlen($q) < 2) {
return response()->json([]);
}
$escaped = addcslashes($q, '\\%_');
return response()->json(
User::query()
->where('name', 'like', "%{$escaped}%")
->orderBy('name')
->limit(10)
->get(['id', 'name', 'slug'])
->map(fn (User $u) => ['id' => $u->id, 'name' => $u->name, 'slug' => $u->slug])
->values()
);
}
}