首页 > 解决方案 > 定义 a has many through 与多态性的关系

问题描述

我正在向现有应用程序添加报告功能,报告是针对两种模型之一制作的(理想情况下也可以针对两种模型制作,但让我们从小处着手)。报告是可配置的,用户应该能够将一组过滤器“保存”为新的“报告类型”,并使用这些过滤器设置可选的重复报告。

我遇到的麻烦是如何在各自的仪表板上仅显示与每个模型相关的报告类型。每种报告类型都将适用于测试或票证,但它与票证或测试没有直接关系,只是它的类。

实体关系图,ReportType有很多Reports,Report属于一种报告类型,reports有很多ticket或者tests并且tickets或者tests有很多reports

我最初的想法是使用 hasManyThrough 关系,但我不确定如何通过多态关系来做到这一点,以及如何查询它以便为动态报告构建菜单。

最终目标是能够在此模型中动态生成下拉菜单选项和选项卡标题,如果模型类型(票证或测试)具有报告类型,那么它应该出现在顶部下拉菜单中,当您选择它时,选项卡在报告页面上应该只显示与该模型有某种关系的报告类型,因此如果有月票报告,则显示该选项卡,但不显示月度测试报告。

在此处输入图像描述

如何在 ReportType(实例)和它可能报告的模型(Ticket、Test 等)之间创建关系。

标签: mysqldatabaselaraveleloquent

解决方案


推荐阅读