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?
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;
});
}