Eu tentei por um tempo e não consegui pensar em como implementar um update que iria alterar o numero de temporadas e episodios relacionados a serie, e se eu inserisse menos temporadas?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu tentei por um tempo e não consegui pensar em como implementar um update que iria alterar o numero de temporadas e episodios relacionados a serie, e se eu inserisse menos temporadas?
Criei essa função aqui no repositorio de series para poder alterar o numero de temporadas e episodios, acho que não é uma ideia muito inteligente pq ele seria um update, mas no fim ele deleta as temporadas e episodios anteriores para inserir novos, os mantendo relacionados a serie através do series_id, fiz mais para brincar com o Eloquent e Query Builder do laravel :)
public function update(Series $series, SeriesFormRequest $request){
$series->name = $request->name;
$series->save();
return DB::transaction(function () use ($series, $request) {
DB::table('seasons')
->where('series_id', $series->id)
->delete();
DB::table('episode')
->where('series_id', $series->id)
->delete();
for ($i = 0; $i <= $request->seasonsQty; $i++) {
$seasons[] = [
'series_id' => $series->id,
'number' => $i,
];
}
Seasons::insert($seasons);
$seasons = Seasons::where('series_id', $series->id)
->get();
$episode = [];
foreach ($seasons as $season) {
for ($j = 1; $j <= $request->episodesPerSeason; $j++) {
$episode[] = [
'series_id' => $series->id,
'seasons_id' => $season->id,
'number' => $j
];
}
}
Episode::insert($episode);
return $series;
});
}