exceptio / laravel-approval
为 Laravel 框架提供的动态审批包
v1.0.11
2024-09-01 10:45 UTC
README
一个用于处理基于模型的审批过程的 Laravel 动态包。
安装
此包非常易于设置。只需几个步骤。
Composer
通过 Composer 引入此包
composer require exceptio/laravel-approval
服务提供者
-
Laravel 5.5 及以上版本使用包自动发现功能,无需编辑
config/app.php
文件。 -
Laravel 5.4 及以下版本将包添加到
config/app.php
文件中的应用服务提供者中。
'providers' => [ ... /** * Third Party Service Providers... */ Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider::class, ],
配置文件
将包配置文件发布到您的应用程序中。在终端中运行以下命令。
php artisan vendor:publish --provider="Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider" --tag="config"
您可以将 approvalpermission-enable
设置为 false
来禁用此功能。您可以在配置文件中将 do-migration
设置为 false
来禁用迁移。注意:如果您禁用迁移,则数据库必须具有所有必要的表和列。
视图文件
将视图文件发布到您的应用程序中。在终端中运行以下命令。
php artisan vendor:publish --provider="Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider" --tag="views"
迁移文件
将包迁移文件发布到您的应用程序中。在终端中运行以下命令。
php artisan vendor:publish --provider="Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider" --tag="migration"
通知文件
将包通知文件发布到您的应用程序中。在终端中运行以下命令。
php artisan vendor:publish --provider="Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider" --tag="notificaiton"
可审批特性
- 将
Approvable
特性包含到类中以进行审批流程。下面是示例。
示例 Approvable
特性
<?php namespace App\Repositories; use App\Models\User; use App\Models\Member; use Exceptio\ApprovalPermission\Approvable; class MemberRepository { use Approvable; const DRAFT_DATA = 0; // Draft member const PENDING_DATA = 1; // Pending member // rest of your code ... }
迁移和种子
此包使用 Laravel 中的默认用户表。您应该已经有用户表的迁移文件并且已迁移。
- 设置所需的表
php artisan migrate
- 对于种子发布
php artisan vendor:publish --provider="Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider" --tag="seeder"
- 播种一组初始审批样本数据。
composer dump-autoload
php artisan db:seed --class="ApprovalSeeder"
就这样!
用法
创建流程
<?php use App\Models\User; use App\Models\Member; use Exceptio\ApprovalPermission\Approvable; class MemberRepository { use Approvable; const DRAFT_DATA = 0; // Draft member const PENDING_DATA = 1; // Pending member public function createStepFinal(Request $request) { $member = new Member::create([ 'name' => 'Test Member', //so on ]); $this->notifyApprovalCreate($member); }
Blade 扩展
Blade 扩展
@approvalMenu() //Show Approval menu in your application
配置文件
您可以在配置中更改用户模型名称、主键和其他设置。请查看配置文件以获取更多信息。
提交问题
在提交问题之前有一些考虑因素
- 在此项目上 加星 表示支持,也是向所有贡献者表示感谢的一种方式。如果您在没有星的情况下提交问题,您的问题可能会被不考虑地关闭。 感谢您的理解和支持。
- 阅读说明 并确保所有步骤都 正确执行。
- 检查 确认问题不是针对您 开发环境设置 的特定问题。
- 提供 复现步骤。
- 尝试查看问题,如果您 有解决方案,请创建一个拉取请求。
- 证明您已尝试 查看问题。
- 检查 您正在 报告的问题是否为之前已报告的问题的重复。
- 遵循这些说明表明您已尝试。
- 如果您有问题,请发送电子邮件至 zahid@exceptionsolutions.com
- 请考虑这是一个开源项目,我在提交问题时免费提供给社区。