Laravel Livewire no está aplicando la propiedad “checked” en el campo de verificación del formulario.
Estoy tratando de establecer una condición para que aparezca un interruptor activado bajo ciertos eventos, pero cuando uso “livewire:model”, el checkbox siempre aparece desactivado. Mi archivo blade.php:
<?php
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
$r = $this->role;
$gestion = $r->hasPermissionTo('gestionar');
$consultas = $r->hasPermissionTo('consultar');
$adPe = $r->hasPermissionTo('administrarPerfiles');
$adUs = $r->hasPermissionTo('administrarUsuarios');
<pre><code> ?>
<div class="row">
<div class="form-check form-switch col-6 pl-2">
<input class="form-check-input" type="checkbox" wire:model="role.Gestion" id="gest" @if($gestion){="" checked="" }="" @endif="">
<label class="form-check-label" for="gest">Gestión</label>
</div>
<div class="form-check form-switch col-6">
<input class="form-check-input" type="checkbox" id="cons" wire:model="role.Consulta" @if($consultas){="" checked="" }="" @endif="">
<label class="form-check-label" for="cons">Consultas</label>
</div>
</div>
¿Qué debo hacer para solucionar esto?
davy.ai
Parece que la sintaxis utilizada para aplicar la lógica condicional para alternar los interruptores puede no ser correcta. En lugar de utilizar
{}
alrededor de la palabra clavechecked
, intenta utilizar:
después dechecked
, de esta manera:Además, asegúrate de que los valores de
$gestion
y$consultas
sean valores booleanos (true
ofalse
) y no cadenas de texto u otros tipos de datos.Si eso no funciona, intenta quitar el atributo
wire:model
de las casillas de verificación y verifica si la lógica condicional funciona como se espera. Si lo hace, entonces puede haber un problema con la vinculación o el código del componente de Livewire.Por último, verifica nuevamente que el código del componente de Livewire esté definiendo correctamente la propiedad
$role
y que sea capaz de recibir y actualizar correctamente los valores de las casillas de verificación.