@php /** * Formulario de enquete, usado por criar e alterar. O que muda entre as * duas e a acao e as opcoes que ja existem, entao o resto mora aqui. */ $antigas = old('options'); $opcoes = []; if (is_array($antigas)) { foreach ($antigas as $chave => $nome) { $existente = $pollOptions->firstWhere('id', (int) $chave); $opcoes[] = ['key' => $chave, 'name' => $nome, 'total' => (int) ($existente->total ?? 0)]; } } else { foreach ($pollOptions as $opcao) { $opcoes[] = ['key' => $opcao->id, 'name' => $opcao->name, 'total' => (int) $opcao->total]; } } /** * A chave de quem ainda nao existe precisa ser unica: duas opcoes com * name="options[new]" viravam uma so, porque a segunda sobrescrevia a * primeira no array que chega ao servidor. */ while (count($opcoes) < 2) { $opcoes[] = ['key' => 'new_' . count($opcoes), 'name' => '', 'total' => 0]; } @endphp