开始
概述
Entry 类位于 Filament\Infolists\Components 命名空间下。你可以将其放到 $infolist->schema() 方法内:
use Filament\Infolists\Infolist;
public function infolist(Infolist $infolist): Infolist
{
return $infolist
->schema([
// ...
]);
}
条目(Entry)可以使用静态 make() 方法创建,传入其唯一名称。你可以使用"点语法"访问 Entry 关联。
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
TextEntry::make('author.name')

可用条目
你也可以创建自定义条目,按照你的需要来展示数据。
设置标签
默认情况下,Entry 的标签(展示在信息列表头部),是由 Entry 的名称生成。你可以使用 label() 方法对其自定义:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
->label('Post title')
可选地,你可以通过 translateLabel() 方法使用 Laravel 本地化特性自动翻译标签。
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
->translateLabel() // Equivalent to `label(__('Title'))`
Entry URL
点击 Entry 时,你可以打开一个网址。
打开 URL
你可以使用 url() 方法,传入回调函数或者静态 URL,来打开 URL。回调接收 $record 作为参数,你可以用它来自定义 URL:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
->url(fn (Post $record): string => route('posts.edit', ['post' => $record]))
你也可以选择在新选项卡中打开 URL:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
->url(fn (Post $record): string => route('posts.edit', ['post' => $record]))
->openUrlInNewTab()
设置默认值
要为状态为 null 的字段设置默认值,你可以使用 default() 方法。该方法将会将默认状态视为真实状态,因此,像图片或者颜色这些 Entry 将会显示默认图片或者颜色。
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
->default('Untitled')
如果 Entry 为空添加占位符文本
有时,你想在 Entry 为空状态值式显示占位符文本,其使用青灰色文本。这与默认值不同,因为占位符永远是文本,且不会被当作真实状态。
use Filament\Infolists\Components\TextEntry;
TextEntry::make('title')
->placeholder('Untitled')

在 Entry 下添加帮助文本
有时,你希望为消息列表用户提供额外信息。为此,你可以在 Entry 下面添加帮助文本。
helperText() 方法用于添加帮助文本:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('name')
->helperText('Your full name here, including any middle names.')
该方法接收普通文本字符串,或者 Illuminate\Support\HtmlString 或 Illuminate\Contracts\Support\Htmlable 的实例。它允许你在帮助文本中渲染 HTML,甚至 markdown:
use Filament\Infolists\Components\TextEntry;
use Illuminate\Support\HtmlString;
TextEntry::make('name')
->helperText(new HtmlString('Your <strong>full name</strong> here, including any middle names.'))
TextEntry::make('name')
->helperText(str('Your **full name** here, including any middle names.')->inlineMarkdown()->toHtmlString())
TextEntry::make('name')
->helperText(view('name-helper-text'))

在标签旁添加 Hint 提示
除了在 Entry 下添加帮助文本,你也可以在 Entry 的标签旁边添加提示(hint)。这对于展示 Entry 的额外信息,比如链接到帮助页面,非常有用。
使用 hint() 方法添加提示:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('apiKey')
->label('API key')
->hint('Documentation? What documentation?!')
该方法接收普通文本字符串,或者 Illuminate\Support\HtmlString 或 Illuminate\Contracts\Support\Htmlable 的实例。它允许你渲染 HTML,甚至 markdown:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('apiKey')
->label('API key')
->hint(new HtmlString('<a href="/documentation">Documentation</a>'))
TextEntry::make('apiKey')
->label('API key')
->hint(str('[Documentation](/documentation)')->inlineMarkdown()->toHtmlString())
TextEntry::make('apiKey')
->label('API key')
->hint(view('api-key-hint'))

修改提示的文本颜色
你也可以修改提示(Hint)的文本颜色。默认为灰色,不过你也可以改成 danger、info、primary、success 及 warning:
use Filament\Infolists\Components\TextEntry;
TextEntry::make('apiKey')
->label('API key')
->hint(str('[Documentation](/documentation)')->inlineMarkdown()->toHtmlString())
->hintColor('primary')





