es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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 clave checked, intenta utilizar : después de checked, de esta manera:

    @if($gestion)
        checked
    @endif
    

    Además, asegúrate de que los valores de $gestion y $consultas sean valores booleanos (true o false) 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.

Comments are closed.