我正在做一个项目:单独的前端用于视图,单独的后端用于 laravel - 休息 API。CRUD 操作都运行良好。开始实施报表建设。我在 Laravel 中创建了一个控制器,它有一个 CreateReport 方法,可以将 pdf 返回到前面。在其中,我从那里传输表格行的 ID,即模型的名称。如何通过字符串名称引用控制器以调用 show 方法?在互联网上,他们立即发誓从另一个控制器调用一个控制器方法是一种反模式,那该怎么办?
我正在做一个项目:单独的前端用于视图,单独的后端用于 laravel - 休息 API。CRUD 操作都运行良好。开始实施报表建设。我在 Laravel 中创建了一个控制器,它有一个 CreateReport 方法,可以将 pdf 返回到前面。在其中,我从那里传输表格行的 ID,即模型的名称。如何通过字符串名称引用控制器以调用 show 方法?在互联网上,他们立即发誓从另一个控制器调用一个控制器方法是一种反模式,那该怎么办?
我对你关于它导致什么和在哪里的问题有点困惑。我建议你做这样的事情。据我了解,您指定某个表中的行 ID 和该表(模型)的名称,并根据数据制作一个 pdf。因此,您可以指定任何表格,它将进行 pdf 下载。所以结论是
createReport
里面的方法可以处理抽象数据,因为所有的表都有不同的字段,并且方法不依赖于结构。因此,我建议创建,trait
例如,报告。在其中指定一种方法createReport
和其他与报告有关的方法。然后将其连接到那些应该收集报告的模型:因此,每个模型
createReport
的库中都会有一个方法!(此表单中的 show 方法是一个示例,您可以以任何形式传递模型的名称,即使您为每个模型单独创建报表控制器。下面只是一个示例,以清楚起见)。
或者第二个选项。创建一个外观
Reports
并执行以下操作:因此,您不必在控制器中创建控制器。