1
resposta

[Sugestão] Target class [authenticator] does not exist.

No laravel 11 não tem o arquivo Kernel na pasta app/Http.

para poder adicionar o middleware no construct eu fiz essa mudança no Controller.php: https://cursos.alura.com.br/forum/topico-bug-call-to-undefined-method-app-http-controllers-seriescontroller-middleware-452596

mas para poder fazer a mudança de ao invés de usar o nome da classe e sim usar um "apelido" para o middleware eu fiz essa mudança no arquivo bootstrap/app.php:

    ->withMiddleware(function (Middleware $middleware) {
        $middleware->alias([
            'authenticator' => Authenticator::class,
        ]);
    })

e agora ficando assim no arquivo routes

Route::middleware('authenticator')->group(function () {
    Route::get('/', function () {
        return redirect('/series');
    });
    
    Route::get('/series/{series}/seasons', [SeasonsController::class, 'index'])->name('seasons.index');
    
    Route::get('seasons/{season}/episodes', [EpisodesController::class, 'index'])->name('episodes.index');
    Route::post('seasons/{season}/episodes', [EpisodesController::class, 'update'])->name('episodes.update');
});
1 resposta

Bom dia Davi, tudo bem?

Gostei da forma como você resolveu o problema relacionado ao erro "Target class [authenticator] does not exist."

As alterações que você fez no arquivo bootstrap/app.php para usar um "apelido" no middleware são uma solução elegante e podem ser úteis para outros desenvolvedores que enfrentam problemas semelhantes. Então, tenho certeza que o seu post ajudará os alunos que enfrentarem um situação parecida.

Continue assim! Caso surjam quaisquer dúvidas eu estarei à sua disposição.

Abraços e bons estudos!