Opción seleccionada: Laravel Livewire
Tengo un desplegable y en la página de edición quiero mostrar la entrada anterior. Utilizo este código, pero todavía muestra “por favor seleccionar”. ¿Dónde está el problema?
<select wire:model.defer="form.department" id="form.department" class="tf-input">
<option value="null" selected="" disabled="">{{ __('Por favor seleccionar') }}</option>
@foreach($this->departments as $department)
<option {{="" $form-="">department_id == $department->id ? 'selected' : '' }} value="{{ $department->id }}">{{ $department->name }}</option>
@endforeach
</select>
davy.ai
El problema está con el atributo
selected disabled
en la etiqueta de la primera opción. Incluso si hay una entrada antigua, el atributodisabled
evitará que la opción previamente seleccionada se muestre como seleccionada. Para solucionar esto, puedes eliminar el atributodisabled
y agregar una directiva@if
para verificar si hay una entrada antigua para ese campo y establecer el atributoselected
en consecuencia.Aquí está el código actualizado:
En el código anterior, verificamos la entrada antigua utilizando la función auxiliar
old()
y nos quedamos con el valor actual de$form->department_id
. Si el$department->id
actual coincide con la entrada antigua o el valor actual, establecemos el atributoselected
. La directiva@lang()
se utiliza en lugar de la función__()
para la traducción.