Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Jose_Flores_Valeriano's avatar

¿Por qué no se ejecuta select anidado en livewire 3 de laravel 11?

Tengo tres modelos: departamentos, provincias y distritos, estoy usando un componente livewire para mostrar 3 selects dinámicos, al seleccionarse el departamento, debe mostrar las provincias que pertenezcan al departamento, al seleccionar la provincia debe mostrar los distritos que pertenecen a esa provincia. este componente está insertado en un partial que a su vez está insertado en una vista junto a otros dos partial. El punto es que solo me carga los datos de los departamentos, pero al seleccionar un departamento no ocurre ninguna acción, el select de provincias no muestra ningún dato. Cabe precisar que estoy usando la versión 11 de Laravel y Livewire 3.

La vista que contiene los partials

<div class="space-y-6">
<div class="p-4 sm:p-8 bg-white shadow sm:rounded-lg dark:bg-gray-800">
    <div class="w-3/4">
        <div id="accordion-flush" data-accordion="collapse"
            data-active-classes="bg-white dark:bg-gray-900 text-gray-900 dark:text-white"
            data-inactive-classes="text-gray-500 dark:text-gray-400">
            @include('colegiados.partials.update-profile-information-form')
            @include('colegiados.partials.update-password-form')
            @include('colegiados.partials.update-profile-information-add-form')
        </div>
    </div>
</div>
                <h3 class="sm:col-span-2 text-gray-900 dark:text-white font-bold">
                Domicilio</h3>

                @livewire('select-ubicaciones')

La vista del componente livewire

<?php

namespace App\Livewire;

use Livewire\Component;

use App\Models\Ubicaciones\Distrito; use App\Models\Ubicaciones\Provincia; use App\Models\Ubicaciones\Departamento;

class SelectUbicaciones extends Component { public $departamentos; public $provincias; public $distritos;

public $selectedDepartamento = null;
public $selectedProvincia = null;
public $selectedDistrito = null;

public function mount()
{
    $this->departamentos = Departamento::all();
    $this->provincias = collect();
    $this->distritos = collect();
}

public function render()
{
    return view('livewire.select-ubicaciones');
}

public function updatedSelectedDepartamento($departamento_id)
{
    $this->provincias = Provincia::where('departamento_id', $departamento_id)->get();
    $this->selectedProvincia = null;
}

public function updatedSelectedProvincia($provincia_id)
{
    $this->distritos = Distrito::where('provincia_id', $provincia_id)->get();
    $this->selectedDistrito = null;
}

}

0 likes
2 replies
Tray2's avatar

If you want help faster, write in English since this is a English forum.

I also suggest coding in English (English for all variables, methods, classes, table, and columns), it will save you time , lines of code, and it will make it easier for others to help you.

1 like

Please or to participate in this conversation.