Laravel - Problemas com Foreach

7 respostas
laravel
C

gente, eu preciso exibir uns dados em uns inputs, quando existe registros funciona normalmente,porém quando não existe acaba bugando o código html.
código abaixo…

@foreach($EditarAtividade as $edtatv)
                                 <input type="text" class="form-control" name="semestre" id="semestre" placeholder="Semestre do estagiário." value="{{$edtatv->atv_semestre}}">
                                  @endforeach


outra duvida que eu tenho é.  é possivel exibir os dados utilizando foreach? pq nesse caso  irá sempre retornar um único registro.

7 Respostas

S

Você pode tentar fazer uma estrutura que apenas execute caso exista o item, Sendo mais ou menos assim:

@if($EditarAtividade) // Aqui você testa para ver se o item existe
      // Se existir você executa algo
@else 
      // Se não, você pode mostrar uma mensagem ou algo que informe para o usuário que essa 'atividade' não existe.
@endif
C

fiz dessa forma,

@if($EditarAtividade)
                                  @foreach($EditarAtividade as $edtatv)
                                 <input type="text" class="form-control" name="semestre" id="semestre" placeholder="Semestre do estagiário." value="{{$edtatv->atv_semestre}}">
                                  @endforeach
                                  
                                @endif
                                 <input type="text" class="form-control" name="semestre" id="semestre" placeholder="Semestre do estagiário.">


achei repetição de código e mesmo assim não funcionou, acabou gerando um outro bug no html como mostra no print em anexo.![erro|690x387](upload://6G2PQdyHcizg5h6ozCuqzUCsVdJ.jpg)
C

J

Se o registro existir, acessa o primeiro elemento do array e joga o valor em uma variavel string (inicializada como em branco). Joga o conteudo dessa variavel no value do seu input.

C

rapaz, é uma coisa simples porém estou tendo dificuldade. até agora nada de funcionar.
só é possível preencher os inputs com foreach?

J

Como expliquei acima, pega o primeiro elemento do array. Dessa forma nao vai precisar de foreach.

$valor = '';

if ($seuArray != null && !empty($seuArray)) 
{
    $valor = $seuArray[0].seu_campo;
}
<input type="text" value="{{$valor}}">

É um exemplo só pra ilustrar a lógica, ajuste se tiver erros e adapte ao seu projeto.

C

resolvido!
vlw man!

Criado 12 de janeiro de 2019
Ultima resposta 13 de jan. de 2019
Respostas 7
Participantes 3