如何在 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 的用户可以批准级别为 2 的 2 类型的申请
- 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
我需要在 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 的用户可以批准级别为 2 的 2 类型的申请
- 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