Laravel Filament 使用流水笔记。
[2024-06-12] Select组件通过relationship关联列表
- 在编辑表中定义BelongsTo字段,关联到提供列表的表Model。
1
2
3
4public function category(): BelongsTo
{
return $this->belongsTo(Category::class, 'category_id', 'id');
} - 再定义Select组件,使用relationship方法关联进来
1
2Forms\Components\Select::make('category_id')
->relationship('category', 'name'),
- 可以通过getOptionLabelFromRecordUsing方法将显示值进行自定义。
[2024-06-12] Select(或Radio)组件的值必须是键名-键值对
- Select组件指定的值,即使显示值和保存值相同,也必须设置数组的键名-键值对,否则无法正常显示(可能获取到了默认数字键名0,1…无法匹配)
1
2
3
4
5Forms\Components\Select::make('Country')->options([
'英国' => '英国',
'美国' => '美国',
'德国' => '德国'
])
[2024-06-11] Filament中的Tabs
Tab::make($name)->label($label)
,创建时make中的$name参数必须是规范的组件名,而不是标题(显示标题通过label函数指定),指定中文等不规范的命名将导致页面异常并且不可点击。- 而
Forms\Components\Section
组件则是相反的,它的label()方法并不起作用,标题必须作为make()方法的参数传入。
[2024-01-18] Filament.Table头部按钮
1 | $table->headerActions([ |
[2024-01-18] 创建一个弹出ModalDialog的Action
1 | Tables\Actions\Action::make('sync') |
[2024-01-19] 在form中添加按钮
在form中可用的Components并没有按钮组件,而要创建Action并调用->button()实现;
但是,form()方法只接受Forms\Components\组件的数组,直接添加Action实例是不允许的;
正确的做法是,创建一个Actions,并向make方法的参数传入一个数组,在该数组中创建Action:
1
2
3
4
5
6
7
8
9
->form([
... //其它组件
Forms\Components\Actions::make([
Forms\Components\Actions\Action::make('Generate excerpt')
->action(function (array $data): void {
//执行操作
})
])