跳到主要内容
版本:3.0

自定义布局

视图组件

除了创建自定义布局组件,你可以创建视图组件。它允许你可以在不使用额外 PHP 类的情况下,创建自定义布局。

use Filament\Infolists\Components\View;

View::make('filament.infolists.components.box')

这段代码假定你有这么一个文件 resources/views/filament/infolists/components/box.blade.php

自定义布局类

你可以创建自定义的组件类和视图,使之可以在整个项目中重用,甚至作为插件发布到社区中。

如果你只想创建一个使用一次的简单自定义组件,你可以使用视图组件来渲染自定义 Blade 文件。

要创建自定义布局类和视图,你可以使用如下命令:

php artisan make:infolist-layout Box

它将同时创建以下布局组件类:

use Filament\Infolists\Components\Component;

class Box extends Component
{
protected string $view = 'filament.infolists.components.box';

public static function make(): static
{
return app(static::class);
}
}

它同时创建了一个视图文件:resources/views/filament/infolists/components/box.blade.php

渲染组件的 schema

在视图内,你可以使用 $getChildComponentContainer() 函数,渲染组件的 schema()

<div>
{{ $getChildComponentContainer() }}
</div>

访问 Eloquent 记录

在视图内,你可以使用 $getRecord() 函数访问 Eloquent 记录:

<div>
{{ $getRecord()->name }}
</div>