Text entry
简介
文本条目用于展示简单文本:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')

自定义颜色
你可以为文本设置颜色:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('status')
->color('primary')
除了允许静态值之外,color() 方法也允许接受一个函数来动态计算其值。你可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |

添加图标
你可以为文本条目添加图标:
use Filament\Infolists\Components\TextEntry;
use Filament\Support\Icons\Heroicon;
TextEntry::make('email')
->icon(Heroicon::Envelope)
icon() 方法也接受一个函数来动态计算图标。你可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |
使用 iconPosition() 你可以设置图标的位置:
use Filament\Infolists\Components\TextEntry;
use Filament\Support\Enums\IconPosition;
use Filament\Support\Icons\Heroicon;
TextEntry::make('email')
->icon(Heroicon::Envelope)
->iconPosition(IconPosition::After) // `IconPosition::Before` or `IconPosition::After`
iconPosition() 方法也接受一个函数来动态计算图标位置。你可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |
图标颜色默认为文本颜色,如果要自定义图标颜色,请使用 iconColor():
use Filament\Infolists\Components\TextEntry;
use Filament\Support\Icons\Heroicon;
TextEntry::make('email')
->icon(Heroicon::Envelope)
->iconColor('primary')
iconColor() 方法也接受一个函数来动态计算图标颜色。你可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |
显示成"徽章"
默认情况下,文本很简单且没有背景色。你可以使用 badge() 方法使之显示成徽章。这一功能的一个很好的用例是带状态的文本,你可能想要显示与该状态相匹配的颜色徽章:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('status')
->badge()
->color(fn (string $state): string => match ($state) {
'draft' => 'gray',
'reviewing' => 'warning',
'published' => 'success',
'rejected' => 'danger',
})

你也可以添加其他东西到徽章中,比如图标。
此外,你也可以传入一个布尔值,用以控制文本是否应该以徽章显示:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('status')
->badge(FeatureFlag::active())
除了允许静态值之外,badge() 方法也允许接受一个函数来动态计算其值。你可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |
格式化
当使用文本条目时,你可能希望在 UI 中实际输出不同于该条目原始状态值的文本,原始值通常自动从 Eloquent 模型中检索而来。格式化状态在保留原始数据的完整性的同时,允许你将其以对用户更友好的方式展示。
要在不改变原始状态值的同时格式化文本条目的值,你可以使用 formatStateUsing() 方法。该方法允许你接受一个函数,该函数接受状态值作为参数并返回格式化后的值:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('status')
->formatStateUsing(fn (string $state): string => __("statuses.{$state}"))
上例中,数据库的 status 字段可能包含 draft、reviewing、published 或者 rejected 等值,而格式化后的状态值为这些值的翻译后的版本。
传入 formatStateUsing() 的函数可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |
日期格式化
除了传入函数到 formatStateUsing() 之外,你可以使用 date()、dateTime() 和 time() 方法,使用 PHP 日期格式化 token 将 Entry 的值格式化:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('created_at')
->date()
TextEntry::make('created_at')
->dateTime()
TextEntry::make('created_at')
->time()

你也可以传入自定义格式化字符串到 date()、dateTime() 或者 time() 方法,自定义日期格式。你可以使用 PHP 日期格式化 token作为格式化字符串值:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('created_at')
->date('M j, Y')
TextEntry::make('created_at')
->dateTime('M j, Y H:i:s')
TextEntry::make('created_at')
->time('H:i:s')
除了允许静态值之外,date()、dateTime() 和 time() 方法也接受一个函数来动态计算其格式。你可以将多个 utility 作为参数注入到该函数中。
Learn more about utility injection.| Utility | Type | Parameter | Description |
|---|---|---|---|
| Entry | Filament\Infolists\Components\Entry | $component | The current entry component instance. |
| Get function | Filament\Schemas\Components\Utilities\Get | $get | A function for retrieving values from the current schema data. Validation is not run on form fields. |
| Livewire | Livewire\Component | $livewire | The Livewire component instance. |
| Eloquent model FQN | ?string<Illuminate\Database\Eloquent\Model> | $model | The Eloquent model FQN for the current schema. |
| Operation | string | $operation | The current operation being performed by the schema. Usually <code>create</code>, <code>edit</code>, or <code>view</code>. |
| Eloquent record | ?Illuminate\Database\Eloquent\Model | $record | The Eloquent record for the current schema. |
| State | mixed | $state | The current value of the entry. |
使用 Carbon 的 macro 格式格式化日期
你也可以使用 isoDate()、isoDateTime() 和 isoTime() 方法,使用 Carbon 的 macro 格式来格式化条目值:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('created_at')
->isoDate()
TextEntry::make('created_at')
->isoDateTime()
TextEntry::make('created_at')
->isoTime()
通过将自定义宏格式化字符串传入到 isoDate()、isoDateTime() 或者 isoTime() 方法,你可以自定义日期格式化。你可以使用 Carbon 的宏格式:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('created_at')
->isoDate('L')
TextEntry::make('created_at')
->isoDateTime('LLL')
TextEntry::make('created_at')
->isoTime('LT')



