Action
操作分组
简介
你可以使用 ActionGroup 对象将 Action 分组到一个下拉菜单中。分组可能包含多个 Action 或者其他分组:
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
ActionGroup::make([
Action::make('view'),
Action::make('edit'),
Action::make('delete'),
])
此页是关于自定义分组触发按钮及下拉菜单外观。
自定义分组触发按钮样式
打开下拉菜单的按钮能够通过和普通操作相同的方式自定义。触发按钮的所有可用方法可用于自定义分组触发按钮:
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\Size;
ActionGroup::make([
// Array of actions
])
->label('More actions')
->icon('heroicon-m-ellipsis-vertical')
->size(Size::Small)
->color('primary')
->button()
使用分组按钮设计
除了下拉列表,操作分组也可以渲染成分组按钮。该设计可以有按钮标签也可以没有。要使用此功能,请使用 buttonGroup() 方法:
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Support\Icons\Heroicon;
ActionGroup::make([
Action::make('edit')
->color('gray')
->icon(Heroicon::PencilSquare)
->hiddenLabel(),
Action::make('delete')
->color('gray')
->icon(Heroicon::Trash)
->hiddenLabel(),
])
->buttonGroup()
设置下拉菜单的位置
使用 dropdownPlacement() 方法,可以设置下拉菜单相对于触发按钮的位置:
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->dropdownPlacement('top-start')
dropdownPlacement() 方法也可以接受函数动态计算其值。你可以将各种 utility 作为参数注入到函数中。
Learn more about utility injection.
| Utility | Type | Parameter | Description |
|---|---|---|---|
| Action group | Filament\Actions\ActionGroup | $group | The current action group instance. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current action group, if one is attached. |
| Mounted actions | array<Filament\Actions\Action> | $mountedActions | The array of actions that are currently mounted in the Livewire component. This is useful for accessing data from parent actions. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current action group, if one is attached. |
| Schema | Filament\Schemas\Schema | $schema | [Action groups in schemas only] The schema object that this action group belongs to. |
| Schema component | Filament\Schemas\Components\Component | $schemaComponent | [Action groups in schemas only] The schema component that this action group belongs to. |
| Schema component state | mixed | $schemaComponentState | [Action groups in schemas only] The current value of the schema component. |
| Schema get function | Filament\Schemas\Components\Utilities\Get | $schemaGet | [Action groups in schemas only] A function for retrieving values from the schema data. Validation is not run on form fields. |
| Schema operation | string | $schemaOperation | [Action groups in schemas only] The current operation being performed by the schema. Usually create, edit, or view. |
| Table | Filament\Tables\Table | $table | [Action groups in tables only] The table object that this action group belongs to. |
添加操作之间的分隔符
通过使用嵌套 ActionGroup 对象,你可以在不同 Action 分组之间添加分隔线:
use Filament\Actions\ActionGroup;
ActionGroup::make([
ActionGroup::make([
// Array of actions
])->dropdown(false),
// Array of actions
])
dropdown(false) 方法将 Action 放在父级下拉菜单中,而不是新的嵌套下拉中。
dropdown() 方法也可以接受函数动态计算其值。你可以将各种 utility 作为参数注入到函数中。
Learn more about utility injection.
| Utility | Type | Parameter | Description |
|---|---|---|---|
| Action group | Filament\Actions\ActionGroup | $group | The current action group instance. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current action group, if one is attached. |
| Mounted actions | array<Filament\Actions\Action> | $mountedActions | The array of actions that are currently mounted in the Livewire component. This is useful for accessing data from parent actions. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current action group, if one is attached. |
| Schema | Filament\Schemas\Schema | $schema | [Action groups in schemas only] The schema object that this action group belongs to. |
| Schema component | Filament\Schemas\Components\Component | $schemaComponent | [Action groups in schemas only] The schema component that this action group belongs to. |
| Schema component state | mixed | $schemaComponentState | [Action groups in schemas only] The current value of the schema component. |
| Schema get function | Filament\Schemas\Components\Utilities\Get | $schemaGet | [Action groups in schemas only] A function for retrieving values from the schema data. Validation is not run on form fields. |
| Schema operation | string | $schemaOperation | [Action groups in schemas only] The current operation being performed by the schema. Usually create, edit, or view. |
| Table | Filament\Tables\Table | $table | [Action groups in tables only] The table object that this action group belongs to. |
设置下拉菜单的宽度
使用 dropdownWidth() 方法,可以为下拉菜单设置宽度。选项对应于 Tailwind 的 max-width 大小。选项包括 ExtraSmall、Small、Medium、Large、ExtraLarge、TwoExtraLarge、ThreeExtraLarge、FourExtraLarge、FiveExtraLarge、SixExtraLarge 和 SevenExtraLarge
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\Width;
ActionGroup::make([
// Array of actions
])
->dropdownWidth(Width::ExtraSmall)
dropdownWidth() 方法也可以接受函数动态计算其值。你可以将各种 utility 作为参数注入到函数中。
Learn more about utility injection.
| Utility | Type | Parameter | Description |
|---|---|---|---|
| Action group | Filament\Actions\ActionGroup | $group | The current action group instance. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current action group, if one is attached. |
| Mounted actions | array<Filament\Actions\Action> | $mountedActions | The array of actions that are currently mounted in the Livewire component. This is useful for accessing data from parent actions. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current action group, if one is attached. |
| Schema | Filament\Schemas\Schema | $schema | [Action groups in schemas only] The schema object that this action group belongs to. |
| Schema component | Filament\Schemas\Components\Component | $schemaComponent | [Action groups in schemas only] The schema component that this action group belongs to. |
| Schema component state | mixed | $schemaComponentState | [Action groups in schemas only] The current value of the schema component. |
| Schema get function | Filament\Schemas\Components\Utilities\Get | $schemaGet | [Action groups in schemas only] A function for retrieving values from the schema data. Validation is not run on form fields. |
| Schema operation | string | $schemaOperation | [Action groups in schemas only] The current operation being performed by the schema. Usually create, edit, or view. |
| Table | Filament\Tables\Table | $table | [Action groups in tables only] The table object that this action group belongs to. |
控制下拉菜单的偏移量
使用 dropdownOffset() 方法,你可以控制下拉菜单的 offset,默认为 8。
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->dropdownOffset(16)
dropdownOffset() 方法也可以接受函数动态计算其值。你可以将各种 utility 作为参数注入到函数中。
Learn more about utility injection.
| Utility | Type | Parameter | Description |
|---|---|---|---|
| Action group | Filament\Actions\ActionGroup | $group | The current action group instance. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current action group, if one is attached. |
| Mounted actions | array<Filament\Actions\Action> | $mountedActions | The array of actions that are currently mounted in the Livewire component. This is useful for accessing data from parent actions. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current action group, if one is attached. |
| Schema | Filament\Schemas\Schema | $schema | [Action groups in schemas only] The schema object that this action group belongs to. |
| Schema component | Filament\Schemas\Components\Component | $schemaComponent | [Action groups in schemas only] The schema component that this action group belongs to. |
| Schema component state | mixed | $schemaComponentState | [Action groups in schemas only] The current value of the schema component. |
| Schema get function | Filament\Schemas\Components\Utilities\Get | $schemaGet | [Action groups in schemas only] A function for retrieving values from the schema data. Validation is not run on form fields. |
| Schema operation | string | $schemaOperation | [Action groups in schemas only] The current operation being performed by the schema. Usually create, edit, or view. |
| Table | Filament\Tables\Table | $table | [Action groups in tables only] The table object that this action group belongs to. |
控制下拉菜单最大高度
使用 maxHeight() 方法,可以设置下拉菜单最大高度,其内容超过此高度则使用滚动条。你可以传入 CSS 长度:
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->maxHeight('400px')
maxHeight() 方法也可以接受函数动态计算其值。你可以将各种 utility 作为参数注入到函数中。
Learn more about utility injection.
| Utility | Type | Parameter | Description |
|---|---|---|---|
| Action group | Filament\Actions\ActionGroup | $group | The current action group instance. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current action group, if one is attached. |
| Mounted actions | array<Filament\Actions\Action> | $mountedActions | The array of actions that are currently mounted in the Livewire component. This is useful for accessing data from parent actions. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current action group, if one is attached. |
| Schema | Filament\Schemas\Schema | $schema | [Action groups in schemas only] The schema object that this action group belongs to. |
| Schema component | Filament\Schemas\Components\Component | $schemaComponent | [Action groups in schemas only] The schema component that this action group belongs to. |
| Schema component state | mixed | $schemaComponentState | [Action groups in schemas only] The current value of the schema component. |
| Schema get function | Filament\Schemas\Components\Utilities\Get | $schemaGet | [Action groups in schemas only] A function for retrieving values from the schema data. Validation is not run on form fields. |
| Schema operation | string | $schemaOperation | [Action groups in schemas only] The current operation being performed by the schema. Usually create, edit, or view. |
| Table | Filament\Tables\Table | $table | [Action groups in tables only] The table object that this action group belongs to. |
Still need help? Join our Discord community or open a GitHub discussion