Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Target class [App\Http\Controllers\SeriesControllers] does not exist.

Olá, não estou conseguindo solucionar este problema. Seguem os códigos:

<?php

namespace App\Http\Controllers;

class SeriesControllers
{
    public function listarSeries()
    {
        $series = [
            'How I Met your Mother',
            'Lucifer',
            'The office'
        ];

        $html = '<ul>';
        foreach ($series as $serie){
            $html .= "<li>$serie</li>";
        }

        $html .= '</ul>';

        echo $html;
    }
}

e

<?php

use App\Http\Controllers\SeriesControllers;
use Illuminate\Sup qport\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/series', [SeriesControllers::class, 'listarSeries()']);
2 respostas
solução!

Olá, Mariana! Tudo bem?

Em Laravel, a convenção de nomenclatura para os controllers é em singular e com a palavra 'Controller' no final. No seu código, você nomeou a classe como SeriesControllers (no plural), mas o correto seria SeriesController (no singular).

Então, o primeiro passo é alterar o nome da sua classe no arquivo do controller para SeriesController:

<?php

namespace App\Http\Controllers;

class SeriesController
{
    public function listarSeries()
    {
        $series = [
            'How I Met your Mother',
            'Lucifer',
            'The office'
        ];

        $html = '<ul>';
        foreach ($series as $serie){
            $html .= "<li>$serie</li>";
        }

        $html .= '</ul>';

        echo $html;
    }
}

Além disso, na sua rota, você está chamando o método listarSeries() com parênteses. No Laravel, quando você está definindo a rota, você deve apenas passar o nome do método, sem os parênteses.

Então, a definição da sua rota deve ficar assim:

<?php

use App\Http\Controllers\SeriesController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/series', [SeriesController::class, 'listarSeries']);

Outra coisa no seu arquivo de rotas tem um use escrito de maneira incorreta: use Illuminate\Sup qport\Facades\Route;

Por fim, como mencionado na aula, é uma boa prática seguir as convenções de nomenclatura do Laravel para os métodos dos controllers.

Espero ter ajudado e bons estudos!

Muito obrigada