KTV/app/Livewire/Grids/RoomGrid.php
allen.yan 5d8c436f86 202508030942
調整檔案位置
RoomGrid 加入 all
2025-08-03 10:22:07 +08:00

49 lines
1.2 KiB
PHP

<?php
namespace App\Livewire\Grids;
use App\Models\Room;
use App\Models\Branch;
use App\Enums\RoomType;
use Livewire\Component;
use Illuminate\Database\Eloquent\Collection;
class RoomGrid extends Component
{
public ?int $selectedBranchId = null;
public string $external_ip= "";
public array $roomTypes;
public $room;
public function mount()
{
$this->roomTypes = ['all' => '全部'] + collect(RoomType::cases())->mapWithKeys(
fn($e) => [$e->value => $e->labels()]
)->toArray();
$this->selectChanged(Branch::first()->id,"","");
}
public function selectChanged($value,$fieldName, $modelId): void
{
$branch = $value ? Branch::find($value) : null;
$this->selectedBranchId=$branch?->id ?? '';
$this->external_ip = $branch?->external_ip ?? '';
}
public function render()
{
$this->rooms = Room::where('branch_id', $this->selectedBranchId)->orderBy('name')->get();
$floors = $this->rooms->pluck('floor')->unique()->sort()->values()->toArray();
array_unshift($floors, 'all');
return view('livewire.grids.room-grid', [
'rooms' => $this->rooms,
'floors' => $floors,
]);
}
}