自定义布局
视图组件
除了创建自定义布局组件,你可以创建视图组件。它允许你可以在不使用额外 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>