httpfactory/approvals

此软件包最新版本(0.1.0)没有提供许可证信息。

Approvals Package

0.1.0 2018-12-06 15:36 UTC

This package is auto-updated.

Last update: 2024-09-19 10:14:53 UTC


README

审批系统

审批系统软件包是一个附加包,允许无缝集成到laravel 5.7+。

安装

要安装,只需将包拉入您的laravel项目
composer install httpfactory\approvals

通过composer成功安装后,您需要
在您的config\app.php文件中注册此包。

将以下行添加到您的服务提供商数组中
Httpfactory\Approvals\ApprovalServiceProvider::class

现在您需要运行以下命令
php artisan vendor:publish --provider=Httpfactory\Approvals\ApprovalServiceProvider

注册包后,您需要运行迁移

运行迁移

您必须按照以下方式运行迁移
php artisan migrate

事件

您需要将以下事件添加到app\Providers\EventServiceProvider.php

  • ApprovalRequest

    • Httpfactory\Approvals\Events\ApprovalRequest
    • 当有人发送审批请求时触发。
  • ApprovalApproved

    • Httpfactory\Approvals\Events\ApprovalApproved
    • 当“审批者”批准审批请求时触发。
  • ApprovalDeclined

    • Httpfactory\Approvals\Events\ApprovalDeclined
    • 当“审批者”拒绝审批请求时触发。
  • ApprovalAwarded

    • Httpfactory\Approvals\Events\ApprovalAwarded
    • 当满足审批配置要求时,自动授予审批触发。
  • ApprovalDenied

    • Httpfactory\Approvals\Events\ApprovalDenied
    • 当满足审批配置要求时,自动拒绝审批触发。

事件应类似于以下代码

           //Begin the approval events
           'Httpfactory\Approvals\Events\ApprovalRequest' => [
               'Httpfactory\Approvals\Listeners\ApprovalRequest',
           ],
   
           'Httpfactory\Approvals\Events\ApprovalApproved' => [
               'Httpfactory\Approvals\Listeners\ApprovalApproved',
           ],
   
           'Httpfactory\Approvals\Events\ApprovalDeclined' => [
               'Httpfactory\Approvals\Listeners\ApprovalDeclined',
           ],
           
           'Httpfactory\Approvals\Events\ApprovalAwarded' => [
               'Httpfactory\Approvals\Listeners\ApprovalAwarded',
           ],
           
           'Httpfactory\Approvals\Events\ApprovalDenied' => [
               'Httpfactory\Approvals\Listeners\ApprovalDenied',
           ],

使用方法

有多种类型的审批

  1. 快速审批(1对1)
  2. 组审批(一组用户必须批准/拒绝)
  3. 多层审批(多个组必须批准/拒绝)

快速审批

以下是一个快速审批的示例

<?php

namespace Acme\SomeProject;

use Httpfactory\Approvals\QuickApproval;
use App\User;

class Someclass {
    
    public function requestApproval(){
        
        //Some user instance that is requesting the approval...
        $user = User::find(1);
        
        //If you have a Laravel Spark and are using "Teams"
        //The User's currentTeam is going to be used as the Team Id association.
               
        //Create a new Approval of certain type, then request the actual approval.
        $approval = new QuickApproval($user);
        $approval->name = 'Credit Card';
        $approval->description = 'Requesting Permission to use the company credit card for something cool';
        $approval->approvalsNeeded = 1;

        $usersThatIneedApprovalFrom = User::where('id', '!=', 1)->get();

        $approval->from($usersThatIneedApprovalFrom)->sendRequest();
    }

}

在上面的示例中,我们向用户发送了一个审批请求。