Retrieve data from a custom Filament\Actions\Action

In my action I've got a custom view:
<x-filament::dropdown.list>
@foreach ($getOptions() as $key => $item)
@php
$wireClickAction = "mountAction('{$action->getName()}', { id: 12345 })";
@endphp
<x-filament::dropdown.list.item wire:click="{{ $wireClickAction }}" wire:key="{{ $key }}">
<x-filament::badge :color="$item->getColor()">
{{ $item->getLabel() }}
</x-filament::badge>
</x-filament::dropdown.list.item>
@endforeach
</x-filament::dropdown.list>
<x-filament::dropdown.list>
@foreach ($getOptions() as $key => $item)
@php
$wireClickAction = "mountAction('{$action->getName()}', { id: 12345 })";
@endphp
<x-filament::dropdown.list.item wire:click="{{ $wireClickAction }}" wire:key="{{ $key }}">
<x-filament::badge :color="$item->getColor()">
{{ $item->getLabel() }}
</x-filament::badge>
</x-filament::dropdown.list.item>
@endforeach
</x-filament::dropdown.list>
Now when clicking on a list item the action gets triggered, but $data remains empty:
PublicationStatusAction::make('status')
->action(function ($data): void {
dd($data);
})
PublicationStatusAction::make('status')
->action(function ($data): void {
dd($data);
})
result: []
Solution:
Ok. Should have used $arguments: ``` PublicationStatusAction::make('status') ->action(function ($arguments): void {...
Jump to solution
3 Replies
Nijholt
NijholtOP2d ago
{
"path": "",
"method": "mountAction",
"params": [
"status",
{
"id": 12345
}
]
}
{
"path": "",
"method": "mountAction",
"params": [
"status",
{
"id": 12345
}
]
}
On click, I see this data in the request
Solution
Nijholt
Nijholt2d ago
Ok. Should have used $arguments:
PublicationStatusAction::make('status')
->action(function ($arguments): void {
dd($arguments);
})
PublicationStatusAction::make('status')
->action(function ($arguments): void {
dd($arguments);
})
So this is solved.
Dennis Koch
Dennis Koch2d ago
To clarify: $data is what's submitted when using a form.

Did you find this page helpful?