exceptio/laravel-approval

为 Laravel 框架提供的动态审批包

v1.0.11 2024-09-01 10:45 UTC

This package is auto-updated.

Last update: 2024-10-01 11:01:02 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"

可审批特性

  1. 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 中的默认用户表。您应该已经有用户表的迁移文件并且已迁移。

  1. 设置所需的表
php artisan migrate
  1. 对于种子发布
php artisan vendor:publish --provider="Exceptio\ApprovalPermission\ApprovalPermissionServiceProvider" --tag="seeder"
  1. 播种一组初始审批样本数据。
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
  • 请考虑这是一个开源项目,我在提交问题时免费提供给社区。

许可协议

Laravel项目的动态审批权限Exception Solutions 提供,标记为 CC0 1.0 公共领域