1
resposta

[Bug] Class não existe

Estou recebendo este erro do laravel Class "App\Repositories\SeriesRepository" does not exist

Projeto do curso https://cursos.alura.com.br/course/laravel-transacoes-service-container-autenticacao

Estrutura das pastas

imagem

Código do controller

<?php

namespace App\Http\Controllers;

use App\Models\Serie;
use App\Models\Season;
use App\Models\Episode;
use App\Repositories\SeriesRepository;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Requests\SeriesFormRequest;

class SeriesController extends Controller
{
    public function index(Request $request)
    {
        $series = Serie::all();
        $mensagemSucesso = session('mensagem.sucesso');
        // $series = Serie::query()->orderBy('nome')->get();
        // dd(Serie::all());
        return view('series.index')
            ->with('series', $series)
            ->with('mensagemSucesso', $mensagemSucesso);
    }

    public function create(Request $request)
    {

        return view('series.create');
    }

    public function store(SeriesFormRequest $request, SeriesRepository $repository)
    {
        // dd($request->all());
        dd($request);
        $serie = $repository->add($request);
        return to_route('series.index')->with('mensagem.sucesso', "A série {$serie->nome} foi adicionada com sucesso");
    }

    public function destroy(Serie $series, Request $request)
    {
        $series->delete();
        // dd($request->route());
        return to_route('series.index')->with('mensagem.sucesso', "A série {$series->nome} foi removida com sucesso.");
    }

    public function edit(Serie $series)
    {
        // dd($series->temporadas);
        // dd($series->temporadas());
        return view('series.edit')->with('serie', $series);
    }

    public function update(Serie $series, SeriesFormRequest $request)
    {
        $series->nome = $request->nome;
        $series->save();

        return to_route('series.index')->with('mensagem.sucesso', "Série {$series->nome} atualizada com sucesso");
    }
}

Código do Repository

<?php 

namespace App\Repositories;
use Illuminate\Support\Facades\DB;
use App\Http\Requests\SeriesFormRequest;
use App\Models\Serie;
use App\Models\Episode;
use App\Models\Season;

class SeriesRepository

{
    public function add(SeriesFormRequest $request): Serie
    {
        return DB::transaction(function () use ($request, &$serie) {
            $serie = Serie::create($request->all());
            $seasons = [];
            for ($i = 1; $i < $request->seasonsQty; $i++) {
                $seasons[] = [
                    'series_id' => $serie->id,
                    'number' => $i,
                ];
            }
            Season::insert($seasons);

            $episodes = [];
            foreach ($serie->seasons as $season) {
                for ($j = 1; $j < $request->episodesPerSeason; $j++) {
                    $episodes[] = [
                        'season_id' => $season->id,
                        'number' => $j
                    ];

                }
            }
            Episode::insert($episodes);
            return $serie;
        });
    }
}
1 resposta

Oii, José!

Tente limpar o cache de configuração e de rotas:

php artisan config:cache
php artisan route:cache