Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ordem de atualização dos episódios

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

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como ficou na grid

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Resolvido adicionando um ->sortBy('number') no foreach de episódios