O que posso ter feito de errado na view create-edit ou no Controller ProdutoController que usando o método compact ou passando valores para a view com array nativo do PHP, os valores na view saem todos como 1?
Porque você está testando se os elementos são verdade no or
(||
) ele compara e te devolve 1 ou true para um das condições seja verdadeira ou falso se as duas forem falsa. No PHP tem que tomar cuidado principalmente é retornos null
que ele também é falso em alguns casos. Ai você pode até questionar mas isso funciona, isso deveria funcionar, mas veja, não funciona como deveria funcionar e pode te causar problemas em versões do PHP
onde or
é para imprimir e ||
fazer a comparação, e na verdade o or
compara também, então vira uma salada de fruta nesse aspecto, então:
Não faça isso para imprimir os valores das suas variáveis, somente se for fazer comparação:
<div class="form-group">
<input type='text' name='name' placeholder="Nome:" class="form-control"
value="{{ $product->name or old('name') }}">
</div>
e faça assim para imprimir o valor das variáveis, exemplo:
<div class="form-group">
<input type='text' name='name' placeholder="Nome:" class="form-control"
value="{{ isset($product)?$product->name: old('name') }}">
</div>
para um reforço leia esse link sobre: Operadores de Comparação
Ou seja, você esta usando errado o PHP e por isso não está trazendo a resposta que esperava e precisa entender esses aspectos sobre PHP
sempre fazer o código seguro.