【发布时间】:2019-07-14 09:13:16
【问题描述】:
不一定只与 Laravel 相关,但我正在开发一个用户可以注册的网站,如果他们愿意,他们可以订阅付费计划。
如果他们不订阅,他们仍然可以浏览网站并看到非常有限的内容(每篇文章只有几段)。
本网站有两种模式:用户模式和计划模式。最初的想法是允许用户从多个计划中进行选择,但现在只使用了一个计划:“Premium”。
当他们订阅计划时,他们将继续使用该计划,直到他们改变主意并每月收取费用。
我有一个具有以下方法的 UserController:索引、创建、存储、显示、编辑、更新和具有相同方法的 UserPlanController。当用户决定取消订阅计划时,我只需调用 UserPlanController::update() 基本上将状态从“活动”更改为“已取消”。他们可能会保持免费用户身份,也可以取消他们的帐户(也将他们的用户状态从“活动”更改为“已取消”)。
我被要求为后台代理创建一个“取消”按钮,该按钮将取消订阅付费计划并取消用户帐户(将两种状态都设置为“已取消”),但保留取消选项仅限订阅。
我想只创建一个新控制器并从中取消这两项操作,但我希望避免重复执行这两个操作的代码,并且我已经为每个资源创建了一个控制器,所以我需要创建一个第三个控制器来做这两个动作?
我想到的另一个选项是向两个端点发出两个 ajax 请求:单击“取消”-> Ajax 请求以取消订阅-> Ajax 请求以取消用户帐户,但我不确定如果这只是一个“hacky”解决方法。
任何帮助将不胜感激,
提前致谢
【问题讨论】:
-
从我的角度来看,我不认为你需要另一个控制器,而不是你可以在 UserController 中做的。因为这些事情是由用户完成的。
标签: php laravel model-view-controller model controller