Estou com o seguinte erro
TypeError
App\Service\CriadorDeSerie::criarSerie(): Argument #2 ($qtdTemporadas) must be of type int, null given, called in C:\Users\eliel.lima\Documents\projetos\controle-series\app\Http\Controllers\SeriesController.php on line 34
O argumento qtdTemporadas esta como int e mesmo assim ele informa esse erro. Alguém poderia me ajudar?
CriadordeSerie.php
use App\Models\Serie;
class CriadorDeSerie
{
public function criarSerie(
string $nomeSerie,
int $qtdTemporadas,
int $epPorTemporada
) :Serie {
$serie = Serie::create(['nome' => $nomeSerie]);
for ($i = 0; $i <= $qtdTemporadas; $i++) {
$temporada = $serie->temporadas()->create(['numero' => $i]);
for ($j = 1; $j <= $epPorTemporada; $j++) {
$temporada->episodios()->create(['numero'=> $j]);
};
}
return $serie;
}
}
SeriesController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests\SeriesFormRequest;
use App\Models\Serie;
use App\Service\CriadorDeSerie;
use Illuminate\Http\Request;
class SeriesController extends Controller{
public function index (Request $request) {
$series = Serie::query()
->orderBy('nome')
->get();
$mensagem = $request->session()->get('mensagem');
return view('series.index', compact('series', 'mensagem'));
}
public function create()
{
return view('series.create');
}
public function store(
SeriesFormRequest $request,
CriadorDeSerie $criadorDeSerie
) {
$serie = $criadorDeSerie->criarSerie(
$request->nome,
$request->qtd_temporada,
$request->ep_por_temporada
);
$request->session()
->flash(
'mensagem',
"Série {$serie->id} e suas temporadas e episódios foram criados com sucesso {$serie->nome}"
);
return redirect()->route('listar_series');
}
public function destroy(Request $request)
{
Serie::destroy($request->id);
$request->session()
->flash(
'mensagem',
"Série removida com sucesso"
);
return redirect()->route('listar_series');
}
}