Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Collection de temporadas não carrega na index.

Olá!

Até o ponto de adicionar as queries, tudo funciona normalmente e as queries são executadas:

Resultado do debugbar executando as 4 queries

Mas as temporadas e episódios não carregam ao acessar a rota de 'seasons.index'.

Rota 'seasons.index' não retornando a lista com as temporadas e episódios

Segue o método index de SeasonsController:

public function index(Serie $series)
    {
        $temporadas = $series->temporadas;
        // dd($temporadas);

        return view('seasons.index')->with('seasons', $series->temporadas);
    }

Ao verificar a variável $temporadas com o dd, é retornado uma Collection vazia, não exibindo as temporadas e episódios salvos na query:

Utilizando 'dd' para verificar a Collection de temporadas retornando vazia

Segue o código do método store, de SeriesController:

public function store(SeriesFormRequest $request)
    {
        $serie = Serie::create($request->all());

        $temporadas = [];

        for ($i = 1; $i <= $request->seasonsQty; $i++) {
            $temporadas[] = [
                'series_id' => $serie->id,
                'numero' => $i,
            ];
        }
        Season::insert($temporadas);

        $episodes = [];

        foreach ($serie->temporadas as $temporada) {
            for ($j = 1; $j <= $request->episodesQty; $j++) {
                $episodes[] = [
                    'season_id' => $temporada->id,
                    'numero' => $j
                ];
            }
        }

        Episode::insert($episodes);

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

Onde pode estar o erro no código?

1 resposta
solução!

Resolvi o problema. Era só um erro de escrita ao carregar os episódios no SeasonsController:

class SeasonsController extends Controller
{
    public function index(Series $series)
    {
        $seasons = $series->seasons()->with('apisodes')->get();
        return view('seasons.index')->with('seasons', $seasons)->with('series', $series);
    }
}

Passando um parâmetro incorreto ('apisodes'), a view não pôde persistir os dados do banco, retornando a lista vazia.

O estranho foi que o framework não me indicou este erro, mas que pude resolver.