gpt4 book ai didi

php - 带有RESTful API,多个模型和共享 View 的MVC Controller

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:19 25 4
gpt4 key购买 nike

前言:下面的文章是相当大的篇幅,因为我试图用相似的、基本的和概念性的问题来最大化对其他读者的价值。
介绍
目前,我正在开发一个基于web的事件管理工具,它使用laravel mvc框架来维护适当的应用程序结构并简化开发。
应用程序的目标是
提供创建(分别为crud)事件的有效方法
邀请注册用户参加这些活动
允许用户确认其参与先前创建的事件
按照mvc模式,我创建了
名为Event的模型
Acc
多视图
静态EventController视图,显示已经存在的事件
用于创建和编辑的窗体视图名为event
eventForm,所有事件的列表
到目前为止,一切似乎都比较直接,但我遇到了设计问题,当时我试图实现进一步的功能,以允许用户确认他们对特定事件的参与。
更多细节
为了进一步说明,每个eventIndex都有一些属性(有些被省略了):
书名
描述
多个Events,由以下属性组成:
书名
时间跨度(例如09-20-2013 09:00 AM到09-20-2013 05:00 PM)
前面提到的EventDate也是一个带有相关数据库表的模型。
与用户登录的帐户不同,我为所有视图和控制器提供了一个布尔变量EventDate,用于按以下方式更改视图$admin
$admin=true:视图是一个静态页面,在表中显示events属性和Events
$ADMIN=false:此外,该视图为每个EventDate表行都有一个隐藏的窗体和按钮,允许用户确认或拒绝其对每个EventDate表行的参与。
使用变量和EventDate-块来改变视图对我来说似乎是可以接受的,因为尽管有隐藏的表单,用户模式和管理模式之间的差别还是很小的。
问题
现在,我遇到的问题是:
谁负责处理用户模式隐藏表单的已发布数据?
首先,对目前的发展状况有以下几点认识:
@if...@endif控制器当前提供以下功能:

/* 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()

Event模型与 EventDate模型是分开的,因为a Event具有多个 Events
确认信息存储在每个用户和 EventDate绑定到 EventDate模型的另一个单独表中
解决方法
我有以下几种选择:
必须使用 EventDateConfirmation等方法扩展 EventController,从而导致多个crud方法,这些方法甚至不属于此控制器,因为它们不直接被视为 CreateEventDateConfirmation()模型,而且在 Event表中根本不会发生任何更改。
在单独的 events中,只负责获取和设置 EventDateConfirmationController模型数据,有两种使用可能性:
通过使用有点笨拙的
Controller::resolve(DEFAULT_BUNDLE,'EventDateConfirmationController')->CreateConfirmation($params);

将响应隐藏表单post请求的路由直接设置为相应的 EventDateConfirmation操作
第一种可能性的缺点是以一种不愉快的方式调用外部控制器,这在我看来是错误的;第二种可能性是不可行的,因为表单还包含直接属于事件的数据,因此必须由 EventDateConfirmationControler控制器处理
??
在我看来,1和2都不是解决这个问题的好办法,因为它们看起来很老套,不太适合MVC模式。
有哪些替代方案可供选择,哪一种方案是解决这一问题的干净办法?
提前谢谢你!

最佳答案

我认为你也许可以做2,使它少一点刻板,但仍然不必改变很多。否则我认为1不是一个好的选择。
实际上,如果我在您的环境中,我会做的是创建eventdateconfirmationcontroller,并在用户模式视图中,使其成为一个单独的异步ajax表单。当用户单击[假设]他/她要去的复选框时提交表单,或者当他们提交另一个表单时打开。
我肯定觉得javascript可以帮助您保持代码的一致性,并且仍然像mvc一样。

关于php - 带有RESTful API,多个模型和共享 View 的MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18919392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com