Files
portal-api/app/Http/Livewire/VcenterDatacenterSelect.php
T
2025-07-24 16:18:27 +07:00

56 lines
1.4 KiB
PHP

<?php
namespace App\Http\Livewire;
use App\Repositories\Module\Datacenter\DatacenterRepositoryInterface;
use App\Repositories\vCenter\vCenterRepositoryInterface;
use Livewire\Component;
class VcenterDatacenterSelect extends Component
{
public $vcenter_id;
public $datacenter_id;
public $vcenters = [];
public $datacenters = [];
protected $vCenterRepository;
protected $datacenterRepository;
public function boot(
vCenterRepositoryInterface $vCenterRepository,
DatacenterRepositoryInterface $datacenterRepository
)
{
$this->vCenterRepository = $vCenterRepository;
$this->datacenterRepository = $datacenterRepository;
}
public function mount()
{
$this->vcenters = $this->vCenterRepository->filter(['status' => 1], [], [], ['id', 'host']);
}
public function updatedVcenterId($value)
{
if (!empty($value)) {
$this->datacenters = $this->datacenterRepository->filter(
['vcenter_id' => $value],
[],
[],
['id', 'name']
);
} else {
$this->datacenters = [];
}
$this->datacenter_id = null; // reset datacenter nếu vcenter đổi
}
public function render()
{
return view('livewire.vcenter-datacenter-select',
[
'vcenters' => $this->vcenters
]);
}
}