Ale*_*ler 5 php rest model-view-controller design-patterns laravel
前言:下面的文字大小合适,因为我试图通过类似的,基本的和概念性的问题来最大化其他读者的价值.
目前我正在开发一个基于Web的事件管理工具,它使用Laravel MVC框架来维护适当的应用程序结构并简化开发.
应用程序的目标是
继MVC模式之后,我创建了
EventEventControllerevent视图,显示已存在的事件eventFormeventIndex,所有活动的清单到目前为止,一切似乎都相对简单,但当我尝试实现更多功能以允许用户确认他们参与特定事件时,我遇到了设计问题.
为了进一步说明,每个Event都有许多属性(一些省略):
EventDates,由以下属性组成:
前面提到EventDate的也是具有相关数据库表的模型.
通过用户登录的帐户进行区分,我$admin为所有视图和控制器创建了一个布尔变量,用于以event下列方式更改视图:
Events属性和EventDatesEventDate表行,允许用户确认或拒绝他们的参与对每个的EventDate小号使用变量和@if...@endif-blocks来改变视图对我来说似乎是可以接受的,因为尽管存在隐藏形式,但用户模式和管理模式之间的差异非常小.
现在,我遇到的问题如下:
谁负责处理用户模式隐藏表单的POSTed数据?
首先,这里有一些关于当前发展状态的事实:
该Event控制器目前提供以下功能:
/* CRUD functions */
public function CreateEvent()
public function ShowEvent($id)
public function UpdateEvent($id)
public function DeleteEvent($id)
/* Form display helpers */
public function NewEvent()
public function EditEvent()
Run Code Online (Sandbox Code Playgroud)EventDate模型是从单独的Event模型,作为Event具有多个EventDate小号EventDate绑定到EventDateConfirmation模型的另一个单独表中存储确认这些是我所知道的选择:
的EventController,必须以类似的方法来延长CreateEventDateConfirmation()等,导致多CRUD方法,甚至不属于这个控制器,因为它们没有直接视为该Event模型,并在没有变化的情况events表
在一个单独的EventDateConfirmationController,只负责获取和设置EventDateConfirmation模型数据,有两种使用可能性:
通过使用有点笨重来调用EventDateConfirmationControler方法EventController
Controller::resolve(DEFAULT_BUNDLE,'EventDateConfirmationController')->CreateConfirmation($params);
Run Code Online (Sandbox Code Playgroud)EventDateConfirmationController操作第一种可能性的缺点是以令人不愉快的方式调用外部控制器这对我来说是错误的,当表单还包含直接属于事件的数据时,第二种可能性是不可行的,因此必须由Event控制器处理
??
在我看来,#1和#2都不是解决问题的好方法,因为它们似乎是黑客攻击,并且在MVC模式中不太适合.
有哪些替代方案可以解决这个问题?
先感谢您!
我认为你也许可以做#2,让它不那么老套,但仍然不需要比以前做太多改变。否则我认为#1不是一个好的选择。
实际上,如果我处于您的情况下,我会做的是创建 EventDateConfirmationController 并在用户模式视图中,将其设为异步 ajax 的单独形式。当用户单击[假设]他/她要去的复选框时提交表单,或者当他们提交其他表单时提交表单。
我绝对觉得 javascript 可以帮助你保持代码的一致性并且仍然像 MVC 一样。
| 归档时间: |
|
| 查看次数: |
1110 次 |
| 最近记录: |