【发布时间】:2017-10-17 11:05:48
【问题描述】:
我不知道在这种情况下该怎么办。 我有两个模型:
- 评论(task_id、文本)
- 任务(标题、优先级、类型、描述)
我需要让用户选择如何创建此模型:
- 自行创建任务
- 创建一个简单的评论(task_id = null)
- 创建评论AS任务(不要问为什么,这是我的想法的一部分:))
前两个已经完成,我有单独的控制器和方法。但最后一个有点棘手: 当用户按下“创建评论作为任务”(+他用任务属性填写表单)时,服务器端应该创建一个新任务,然后创建一个带有指向已创建任务的 task_id 链接的新评论。我能想象的只是肮脏的重复代码。
我发现的最好方法:
- 创建一个名为“CreatedTaskFromCommentsSection”的事件并在那里(在侦听器中)调用评论存储库以创建新评论,链接到任务
- 然后使用 TaskController->create 方法并在请求中传递附加评论信息并检查 if($request->comment_title) 然后调用事件
但我认为这是非常糟糕的逻辑。也许我应该为此使用另一个表结构?将不胜感激这里的任何建议:)
【问题讨论】:
标签: php design-patterns laravel-5 architecture