Skip to content
Snippets Groups Projects

Resolve "admin-series"

Merged Zaray Pastor Carretero requested to merge 32-admin-series into main
20 files
+ 890
42
Compare changes
  • Side-by-side
  • Inline

Files

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Serie;
use App\Models\Season;
use App\Models\Episode;
use App\Models\Film;
use Illuminate\Support\Facades\Log;
class EpisodeController extends Controller {
public function admin(){
$episodes = Episode::all();
return view("admin.series.seasons.episodio.admin", compact("episodes"));
}
public function create() {
$seasons = Season::with('serie')->get();
return view("admin.series.seasons.episodio.create", compact("seasons"));
}
public function getSeasonsForSerie($serie_id) {
// Verifica que el id de la serie sea válido
$seasons = Season::where('serie_id', $serie_id)->get();
if ($seasons->isEmpty()) {
return response()->json([], 404); // Si no hay temporadas, respondemos con un array vacío
}
return response()->json($seasons);
}
public function store(Request $request){
$validatedData = $request->validate([
'season_id' => 'required',
'title' => 'required',
'sinopsis' => 'required',
'duration' => 'required|numeric|min:1',
'image' => 'nullable|image',
]);
$episode = new Episode();
$episode->season_id = $request->season_id;
$episode->title = $request->title;
$episode->sinopsis = $request->sinopsis;
$episode->casting = json_encode(array_map('trim', explode(',', $request->casting ?? $episode->casting)));
$episode->duration = $request->duration;
if ($request->hasFile('image')) {
$episode->image = $request->file('image')->store('episodes', 'public');
}
$episode->save();
return redirect()->route('series.adminEpisode');
}
public function edit($id){
$episode = Episode::findOrFail($id);
$seasons = Season::with('serie')->get();
return view("admin.series.seasons.episodio.edit", compact("episode" , "seasons"));
}
public function update(Request $request, $id){
$validatedData = $request->validate([
'season_id' => 'required',
'title' => 'required',
'sinopsis' => 'required',
'duration' => 'required|numeric|min:1',
]);
$episode = Episode::findOrFail($id);
$episode->season_id = $request->season_id;
$episode->title = $request->title;
$episode->sinopsis = $request->sinopsis;
$episode->duration = $request->duration;
if ($request->hasFile('image')) {
$episode->image = $request->file('image')->store('episodes', 'public');
}
$episode->update();
return redirect()->route('series.adminEpisode');
}
public function destroy($id){
$episode = Episode::findOrFail($id);
$episode->delete();
return redirect()->route('series.adminEpisode')->with('success', 'Episodio eliminado con éxito');
}
}
Loading