如何通过视图和控制器传递参数?

时间:2018-09-05 08:17:09

标签: php model-view-controller

我有一个模型Project,其中有许多Order。在项目的页面上,我有其订单和创建/更新按钮的列表。 现在,我在URL的GET参数中传递project_id。我需要注意每个URL和重定向都具有此参数(在更新和创建视图/控制器以及订单视图/控制器列表中)。 是否有更好的方法通过视图和控制器传递参数?

1 个答案:

答案 0 :(得分:1)

这实际上与MVC没有任何关系。在Web上下文中,每个HTTP请求必须是独立的。服务器满足请求所需的所有信息必须包含在请求中。在URL中或在请求正文中。*

每当服务器在某个位置生成URL并将其发送回客户端时,您都需要在该URL中嵌入所有必要的信息,因此对该URL的请求将为您的控制器提供满足该请求所需的所有信息。因此,是的,您需要将所有信息传递到代码中的该位置。无论您使用MVC还是纯意大利面条PHP文件,这几乎都是相同的。

唯一的选择是减少控制器满足请求所需的信息量,例如因为您可以隐式地从另一信息中获取一部分信息,例如仅提供订单ID时就可以获得项目ID。

* (我将在此处放弃会话存储之类的东西,因为它在所有请求中都是有状态的,通常不能用于传输特定于各个请求的信息。)