1
resposta

[Bug] foreach() argument must be of type array|object, null given

Bom dia, estou tendo esse problema ao tentar inserir episódios. Alguém pode me ajudar pro favor?

Segue o fonte como foi mostrado no curso:

public function store(SeriesFormRequest $request)

{

    $serie = Serie::create($request->all());

    $seasons = [];

    for ($i = 1; $i <= $request->seasonsQty; $i++) {

        $seasons[] = [

            'series_id' => $serie->id,

            'number' => $i,

        ];

    }

    Season::insert($seasons);



    $episodes = [];

   -----> Linha do erro: foreach ($serie->seasons as $season) {

        for ($j = 1; $j <= $request->episodesPerSeason; $j++) {

            $episodes[] = [

                'season_id' => $season->id,

                'number' => $j

            ];

        }

    }

    Episode::insert($episodes);



    return to_route('series.index')

        ->with('mensagem.sucesso', "Série '{$serie->nome}' adicionada com sucesso");
1 resposta

Olá Carlos!

Pelo erro que você está recebendo, parece que a variável $serie->seasons está nula ou vazia. Isso pode acontecer se a série que você está tentando adicionar não possui nenhuma temporada associada a ela.

Para resolver esse problema, você pode adicionar uma verificação antes do loop foreach para garantir que a variável $serie->seasons não esteja vazia. Por exemplo:

if (!empty($serie->seasons)) {
    foreach ($serie->seasons as $season) {
        // Restante do código
    }
}

Dessa forma, o loop foreach só será executado se a variável $serie->seasons não estiver vazia.

Espero que isso ajude! Se tiver mais alguma dúvida, é só me dizer. Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software