Os episódios estão sendo carregados na grid por ordem de atualização do banco, fazendo com que os episódios selecionados fiquem embaixo, gostaria de manter na ordem correta mas não encontrei uma solução.
EpisodesController
<?php
namespace App\Http\Controllers;
use App\Models\Episode;
use App\Models\Season;
use Illuminate\Http\Request;
class EpisodesController extends Controller
{
public function index(Season $season) {
return view('episodes.index')->with('episodes', $season->episodes);
}
public function update(Request $request, Season $season) {
$watchedEpisodes = $request->episodes;
$season->episodes()->each(function(Episode $episode) use($watchedEpisodes) {
$episode->watched = in_array($episode->id, $watchedEpisodes);
$episode->save();
});
return to_route('episodes.index', $season->id);
}
}
episodes.index
<x-layout title="Episódios">
<form method="post">
@csrf
<ul class="list-group">
@foreach($episodes as $episode)
<li class="list-group-item d-flex justify-content-between align-items-center">
Episódio {{$episode->number}}
<input type="checkbox"
name="episodes[]"
value="{{$episode->id}}"
@if ($episode->watched) checked @endif>
</li>
@endforeach
</ul>
<button class="btn btn-primary mt-2 mb-2">Salvar</button>
</form>
</x-layout>
Eps no banco
Como ficou na grid