I need to return checked checkboxes in a view for editing, but I'm having problems. The values until returned are clicked but the foreach is duplicating the checkboxes causing an option to appear more than once on screen, so I ask:
Is there a better way to do this?
I use the lavavel 5.5 framework
See my code.
Print screen. (In the image it is not possible to see Checks checked or duplicated, but I am posting it to facilitate understanding if necessary
Viewcode(PartofForeachtodisplaychecks)
{{--percorrendoosvaloresparaverificarqualestápreenchido--}}@foreach($perfisvinculadosas$perfil){{--percorrendoatabelapermissoesparaexibiroschecks--}}@foreach($permissoesas$keys=>$dados_permissoes){{--seorestodadivisãonãoforparseráexibidonacolunaA--}}@if(!($keys%2))<trclass="">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="">
{{-- verificando se o valor do campo permissoes retornado no primeiro foreach é igual ao da tabela permissoes se for marca o check --}}
@if($perfil->permissoes_id == $dados_permissoes->id)
<p><input type="checkbox" class='chk' name="permissoes_id[]" id="permissoes_id" checked value="{{$dados_permissoes->id }}"> {{$dados_permissoes->nome}}</p>
</td>
{{-- se não for exibe o check desmarcado--}}
@else
<p><input type="checkbox" class='chk' name="permissoes_id[]" id="permissoes_id" value="{{ $dados_permissoes->id }}"> {{$dados_permissoes->nome}}</p>
</td>
@endif
{{-- se não será exibido na coluna B --}}
@else
<td></td>
<td class="">
{{-- verificando se o valor do campo permissoes retornado no primeiro foreach é igual ao da tabela permissoes se for marca o check --}}
@if($perfil->permissoes_id == $dados_permissoes->id)
<p><input type="checkbox" class='chk' name="permissoes_id[]" id="permissoes_id" checked value="{{ $dados_permissoes->id }}"> {{$dados_permissoes->nome}}</p>
</td>
{{-- se não for exibe o check desmarcado--}}
@else
<p><input type="checkbox" class='chk' name="permissoes_id[]" id="permissoes_id" value="{{ $dados_permissoes->id }}"> {{$dados_permissoes->nome}}</p>
</td>
@endif
</tr>
@endif
{{-- finalizando o segundo foreach --}}
@endforeach
{{-- finalizando o primeiro foreach --}}
@endforeach
Controller
public function edit($perfis_id)
{
//descriptografando o ID
$perfis_id = decrypt($perfis_id);
// consulta para obter as informações de vínculo do perfil retornando o primeiro registro
// aqui retorna um unico objeto
$perfispermissoes = $this->perfispermissoes->where('perfis_id', '=', $perfis_id)
->first();
// consulta utilizada no primeiro laço foreach para marcar os campos
// aqui retorna um array
$perfisvinculados = $this->perfispermissoes->where('perfis_id', '=', $perfis_id)
->get();
// Recuperando os dados do Perfil para Exibir no Combobox de filtro por Perfil
$perfis = $this->perfis->all();
// recuperando todas as permissões
$permissoes = $this->permissoes->all();
// variavel com o titulo do form
$title = 'Altere as Permissões / Perfis Vínculados';
// variavel com a descrição do form de edição
$desc = 'Altere as permissões vinculadas ao perfil';
return view('paineladmin.perfis_permissoes.insert-edit', compact('title', 'desc', 'perfispermissoes', 'perfisvinculados', 'perfis', 'permissoes'));
}