代码质量 Tips
使用 Schema 和表格类
由于许多 Filament 方法仅在一个方法中定义应用的 UI 和功能,因此很容易产生庞大的方法和文件。即使你的代码风格简洁一致,这些方法和文件也可能难以阅读。
Filament 尝试通过在生成资源时提供专用的 Schema 和表格类来缓解部分问题。这些类都有一个 configure()
方法,该方法接受 $schema
或 $table
作为参数。然后,你可以从任何想要定义 Schema 或表格的地方调用该 configure()
方法。
例如,如果你有以下 app/Filament/Resources/Customers/Schemas/CustomerForm.php
文件:
namespace App\Filament\Resources\Customers\Schemas;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
class CustomerForm
{
public static function configure(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name'),
// ...
]);
}
}
你可以在资源的 form()
方法中使用它:
use App\Filament\Resources\Customers\Schemas\CustomerForm;
use Filament\Schemas\Schema;
public static function form(Schema $schema): Schema
{
return CustomerForm::configure($schema);
}
你页可以对 table()
执行相同的操作:
use App\Filament\Resources\Customers\Schemas\CustomersTable;
use Filament\Tables\Table;
public static function table(Table $table): Table
{
return CustomersTable::configure($table);
}
或者 infolist()
:
use App\Filament\Resources\Customers\Schemas\CustomerInfolist;
use Filament\Schemas\Schema;
public static function infolist(Schema $schema): Schema
{
return CustomerInfolist::configure($schema);
}