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;
}
}