Это отличный кандидат для явного связывания модели маршрута; в зависимости от того, как вы хотите это настроить.
В документации рассказывается, как это сделать; https://laravel.com/docs/7.x/routing#route -model-binding .
В качестве альтернативы может работать промежуточное ПО - EnsureUsernameExists
:
public function handle($request, Closure $next)
{
$username = $this->route('username');
User::where('username', $username)->where('level', '>', 5)->firstOrFail();
// Or with abort
abort_unless(User::where('username', $username)->where('level', '>', 5)->exists(), 404);
}
Или вы можете просто запустить проверку внутри метода вашего контроллера , используя любой подход внутри промежуточного программного обеспечения.