概述
简介
资源是用来为你的 Eloquent 模型创建 CRUD 接口的静态类。它们描述了管理员如何使用表格和表单与应用中的数据进行交互。
创建资源
要为 App\Models\Customer
模型创建资源:
php artisan make:filament-resource Customer
这将在 app/Filament/Resources
目录中创建多个文件:
.
+-- Customers
| +-- CustomerResource.php
| +-- Pages
| | +-- CreateCustomer.php
| | +-- EditCustomer.php
| | +-- ListCustomers.php
| +-- Schemas
| | +-- CustomerForm.php
| +-- Tables
| | +-- CustomersTable.php
你的新资源类为 CustomerResource.php
。
Page
目录中的类用于自定义应用中与资源交互的页面。它们是全页 Livewire 组件,你可以以你希望的方式自定义这些页面。
Schemas
目录中的类用于定义资源的表单和信息列表内容。Tables
目录中的类用来为资源创建表格。
TIP
我创建了一个资源,但它并没有在导航菜单中显示?如果你有模型策略,请确保 viewAny()
方法返回 true
。
简单(模态框)资源
有时,你的模型非常简单,你只想在一个页面上管理记录,并使用模态窗口来创建、编辑和删除记录。要生成一个包含模态窗口的简单资源,请执行以下操作:
php artisan make:filament-resource Customer --simple
你的资源将会有一个“管理”页面,该页面是一个添加了模态窗口的列表页面。
此外,你的简单资源将没有 getRelations()
方法,因为关联管理器仅显示在编辑和查看页面上,而简单资源中不存在这些页面。其他所有内容均相同。
自动生成表单和表格
如果你想节省时间,使用 --generate
,Filament 可以根据模型的数据库字段自动为你生成表单和表格:
php artisan make:filament-resource Customer --generate
处理软删除
默认情况下,你将无法在应用中与已删除的记录进行交互。如果你想在资源中添加恢复、强制删除和过滤已删除记录的功能,请在生成资源时使用 --soft-deletes
标志:
php artisan make:filament-resource Customer --soft-deletes
了解更多的关于软删除的信息,请查看此处的软删除文档。
生成查看页面
默认情况下,只会生成列表页、创建页和编辑页。如果你想要生成查看页,请使用 --view
标志:
php artisan make:filament-resource Customer --view