如何在 php 中创建多级工作流程?

How to create multi-level workflow in php?

我需要在 php 网络应用程序中创建多级审批表。基本上我们有不同的申请,每个申请都有不同级别的人需要批准。一旦创建者提交了表格,当第 2 个分配者批准时,通知必须发送给第 1 个分配者,第 2 个分配者必须批准。这可以是任何级别,并且应该是动态的。在 php 中实现这一点的最佳程序是什么?我们正在 laravel 5.3 框架和 mysql 中编写应用程序。

您可以将表单数据存储在 table 中,其中包含当前批准级别的字段,并根据此级别将其显示给合适的人。

要通知不同的人需要批准的表单,您可以在提交表单时触发 an event(意思是:当它进入下一个批准级别时),然后发送电子邮件,或者您可以喜欢通知人。

更新

对于数据库,我将创建一个名为 "requisitions" 的 table,其中包含申请所需的所有表单字段的列以及另外两个字段:级别、类型。级别可以是一个整数,我也会将其用于类型列(并且 "cast" 将其用于应用程序中的描述性文本)。

要将用户映射到不同类型,您还有很多选择。查询相关用户请求最简单的方法是添加一个 "user_can_approve" table,例如:

user_id     requisition_type     requisition_level
1           2                    2
2           1                    1
2           2                    1
2           3                    1
3           2                    2

(意思是:

  • ID 为 1 的用户可以批准级别为 22 类型的申请
  • ID 为 2 的用户可以批准 1 级别 1 类型的申请
  • ID 为 2 的用户可以批准 2 级别 1 类型的申请
  • 等等...

然后你可以像这样查询特定用户的相关申请:

SELECT r.`id` 
FROM `requisitions` r JOIN `users` u JOIN `user_can_approve` uca 
  ON 
    u.`id` = uca.`user_id` 
  AND 
    r.`type` = uca.`requisition_type` 
  AND 
    r.`level` = uca.`requisition_level` 
WHERE uca.`user_id`=$currentUsersID