I have a MultiselectTwoSides component on laravel site, which I need to fill with related full users list on left side with ticket_id parameter on prior step and users which were selected before for selected ticket on prior session. I try to use callable method for default method:
Select::make('task_id')
->label('Task')
->options(Task::query()->orderBy('id', 'asc')->pluck('title', 'id'))
->reactive()
->required(),
Select::make('ticket_id')
->label('Has tickets')
->options(function (callable $get) {
$task = Task::find($get('task_id'));
if(!$task) {
return [];
}
return $task->tickets->pluck('title', 'id');
})
->reactive()
->required(),
MultiselectTwoSides::make('users')
->options(function (callable $get) {
$ticket = Ticket::find($get('ticket_id'));
if(!$ticket) {
return [];
}
$users = User::get()->pluck('name', 'id');
$selectedUsers = $ticket->users->pluck('name', 'id');
foreach( $users as $userId=>$user ) {
foreach( $selectedUsers as $selectedUserId=>$selectedUser ) {
if($selectedUserId === $userId) {
unset($users[$userId]);
}
}
}
return $users;
})
->default(function (callable $get) {
$ticket = Ticket::find($get('ticket_id'));
\Log::info( ' default callback::'); // I HAVE NOT FIND THIS MESSAGE IN LOG FILE
if(!$ticket) {
return [];
}
return $ticket->users->pluck('name', 'id');
}) // ->default(['admin', 'manager']),
->label('Select users')
->selectableLabel('Available users')
->selectedLabel('Selected users'),
As a result, I have a valid 'Available users' left list filled, but right list 'Selected users' is always empty.
Looks like there are no debugging lines:
' default callback::'
In log file default callback method is not called.
How can I fill default options on data in database?
"filament/filament": "^2.17.43",
"lucasgiovanny/filament-multiselect-two-sides": "^1.1.2",