跳到主要内容
版本:5.x

空状态

简介​

你可以在 Schema 中展示“空状态”(empty state),以提示当前尚无内容可显示,并引导用户进行下一步操作。空状态必须包含标题,同时也支持添加 description()(描述)、icon()(图标)和 footer()(页脚):

use Filament\Actions\Action;
use Filament\Schemas\Components\EmptyState;
use Filament\Support\Icons\Heroicon;

EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->icon(Heroicon::OutlinedUser)
->footer([
Action::make('createUser')
->icon(Heroicon::Plus),
])
除了允许静态值之外,make() 和 description() 方法也接受函数作为参数动态计算它们的值。你可以使用各种 utility 作为参数注入到该函数中。Learn more about utility injection.
UtilityTypeParameterDescription
ComponentFilament\Schemas\Components\Component$componentThe current component instance.
Get functionFilament\Schemas\Components\Utilities\Get$getA function for retrieving values from the current schema data. Validation is not run on form fields.
LivewireLivewire\Component$livewireThe Livewire component instance.
Eloquent model FQN?string<Illuminate\Database\Eloquent\Model>$modelThe Eloquent model FQN for the current schema.
Operationstring$operationThe current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>.
Eloquent record?Illuminate\Database\Eloquent\Model$recordThe Eloquent record for the current schema.
Empty state

为空状态添加图标​

你可以使用 icon() 方法为空状态添加图标:

use Filament\Schemas\Components\EmptyState;
use Filament\Support\Icons\Heroicon;

EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->icon(Heroicon::OutlinedUser)
除了允许静态值之外,icon() 方法也接受函数作为参数动态计算其值。你可以使用各种 utility 作为参数注入到该函数中。Learn more about utility injection.
UtilityTypeParameterDescription
ComponentFilament\Schemas\Components\Component$componentThe current component instance.
Get functionFilament\Schemas\Components\Utilities\Get$getA function for retrieving values from the current schema data. Validation is not run on form fields.
LivewireLivewire\Component$livewireThe Livewire component instance.
Eloquent model FQN?string<Illuminate\Database\Eloquent\Model>$modelThe Eloquent model FQN for the current schema.
Operationstring$operationThe current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>.
Eloquent record?Illuminate\Database\Eloquent\Model$recordThe Eloquent record for the current schema.

你可以通过向 footer() 方法传入一个组件数组,将 Action 以及任何其他 Schema 组件(通常是 prime 组件)插入到空状态的页脚中:

use Filament\Actions\Action;
use Filament\Schemas\Components\EmptyState;

EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->footer([
Action::make('createUser')
->icon(Heroicon::Plus),
])
除了允许静态值之外,footer() 方法也接受函数作为参数动态计算其值。你可以使用各种 utility 作为参数注入到该函数中。Learn more about utility injection.
UtilityTypeParameterDescription
ComponentFilament\Schemas\Components\Component$componentThe current component instance.
Get functionFilament\Schemas\Components\Utilities\Get$getA function for retrieving values from the current schema data. Validation is not run on form fields.
LivewireLivewire\Component$livewireThe Livewire component instance.
Eloquent model FQN?string<Illuminate\Database\Eloquent\Model>$modelThe Eloquent model FQN for the current schema.
Operationstring$operationThe current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>.
Eloquent record?Illuminate\Database\Eloquent\Model$recordThe Eloquent record for the current schema.

移除空状态容器​

默认情况下,空状态组件带有背景色、阴影和边框。你可以使用 contained(false) 移除这些样式,从而仅渲染空状态的内容,而不显示容器:

use Filament\Schemas\Components\EmptyState;

EmptyState::make('No users yet')
->description('Get started by creating a new user.')
->contained(false)
除了允许静态值之外,contained() 方法也接受函数作为参数动态计算其值。你可以使用各种 utility 作为参数注入到该函数中。Learn more about utility injection.
UtilityTypeParameterDescription
ComponentFilament\Schemas\Components\Component$componentThe current component instance.
Get functionFilament\Schemas\Components\Utilities\Get$getA function for retrieving values from the current schema data. Validation is not run on form fields.
LivewireLivewire\Component$livewireThe Livewire component instance.
Eloquent model FQN?string<Illuminate\Database\Eloquent\Model>$modelThe Eloquent model FQN for the current schema.
Operationstring$operationThe current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>.
Eloquent record?Illuminate\Database\Eloquent\Model$recordThe Eloquent record for the current schema.
Empty state without container