首页 > 解决方案 > 多态表分为 3 个控制器

问题描述

我正在构建一个应用程序,您可以在其中在company他们的个人资料上写评论。这通常是一对多的关系,但在应用程序中,您还可以在apartment页面和arrangements页面上写评论。所以我有 3 个不同的页面来添加评论功能。显然,用户也可以编辑和删除评论。

reviews表是多态的。所以你有一个字段reviewable_typereviewable_id

现在我正在考虑做一个ReviewController来减少代码重复。我现在面临的问题是我需要在这 3 个不同的页面上显示评论,但我不想在每个控制器中包含相同的代码(ApartmentController, ArrangementController, CompanyController)。

在不重复大量代码的情况下实现此解决方案的最佳方法是什么。

我正在考虑在 MVC 模式之外放置一个特殊的类,但我想保持尽可能接近 MVC 模式。

另外,我想在 3 个控制器中放置另一种方法,但又会出现代码重复。

标签: laravelmodel-view-controllereloquent

解决方案


您可以使用特征来实现这一点。

创建一个新特征ReviewTrait并将代码放入其中并在所有控制器中使用。

您可以在此处找到更多特征链接


推荐阅读