我有一个表格,该表格是由学生提交的,并且需要根据表格类型的不同人的批准。我如何在Laravel中实现这一目标? 例如学生1提交表格类型1,该表格类型需要得到教师和顾问的批准。顾问只有在教师批准后,才会得到批准的通知。
我已经尝试为(5)的每种类型的批准者创建列,并检查批准者是否已批准并设置了该字段。这种方法的问题在于表中有许多列。
我创建了一个表格,其中包含批准人和特定表单的批准人优先级,并基于该表发送通知。
我知道应该有更好的方法来实现这一目标。
$firstApprover = $form->approvallist->where('priority', '1')->first();
**这是批准列表与批准列表的关系,该表包含批准此特定表单类型的人员的列表。
答案 0 :(得分:1)
您可以保持多对多关系。这些表将是students,form_types,而数据透视表将是form_type_student。在数据透视表中,您将存储表单的类型,学生ID和另外两个字段。一个是approver_id(批准者),另一个是is_approved(布尔值)(是否批准)。
然后您可以检查学生提交的表单类型是否被批准以及是否由谁批准了
答案 1 :(得分:0)
答案 2 :(得分:0)
让我们假设您正在使用Application和Reviewer表。我建议将它们与多对多联系联系起来。数据透视表可以在数据透视表中包含“批准”(默认为0)和“优先级”自定义字段。仅在收到最后一个确认时,设置应用程序的批准标志。
请参见https://laravel.com/docs/5.8/eloquent-relationships#many-to-many