laravel new MyProject
composer require heloufir/filament-workflow-manager
config/app.php
中注册\Heloufir\FilamentWorkflowManager\FilamentWorkflowManagerServiceProvider::class,
php artisan migrate
新建 Filament 用户(查看文档) https://filamentphp.com/docs/2.x/admin/installation#installation
启动服务
php artisan serve
这样你就可以在设置菜单分组中看到一个名为工作流(Workflows)的菜单,你可以在此处管理工作流。
php artisan make:model MyModel
use Heloufir\FilamentWorkflowManager\Core\HasWorkflow;use Heloufir\FilamentWorkflowManager\Core\InteractsWithWorkflows;// ... class Project extends Model implements HasWorkflow{ use InteractsWithWorkflows; // ...}
此处要添加 HasWorkflow
接口实现,将 InteractsWithWorkflows
trait 添加到模型中.
添加 Filament 资源来管理模型,查看 Filament 文档: https://filamentphp.com/docs/2.x/admin/resources/getting-started#创建资源
配置 Filament 资源
在你的 Filament 资源的 form
定义中,你需要添加 WorkflowStatusInput::make()
,这样用户才可以根据工作流配置修改模型状态:
use Heloufir\FilamentWorkflowManager\Forms\Components\WorkflowStatusInput; public static function form(Form $form): Form{ return $form ->schema([ // ... WorkflowStatusInput::make() ]);}
如果你想在 Filament 资源表格中显示当前模型状态,你需要在表格定义中添加 WorkflowStatusColumn::make()
:
use Heloufir\FilamentWorkflowManager\Tables\Columns\WorkflowStatusColumn; public static function table(Table $table): Table{ return $table ->columns([ // ... WorkflowStatusColumn::make() ]);}
最后需要配置的是,在模型的 EditRecord
和 CreateRecord
组件中添加 WorkflowResource
trait。
EditRecord 组件
// ...use Heloufir\FilamentWorkflowManager\Core\WorkflowResource; class EditMyModel extends EditRecord{ use WorkflowResource; // ...}
CreateRecord 组件
// ...use Heloufir\FilamentWorkflowManager\Core\WorkflowResource; class CreateMyModel extends CreateRecord{ use WorkflowResource; // ...}