0

我对 PHP 中的 MVC 设计模式有疑问。

如果您访问 Stack Overflow 上的问题,则 URL 变为“stackoverflow.com/questions/[id]”,如果您转到“提问”,则 URL 变为“stackoverflow.com/questions/ask”。

我想这通常意味着加载了一个名为“questions”的控制器,而“ask”是该控制器中的一个方法,它告诉视图显示一个表单以便用户提出问题。但是当你访问一个问题时,没有方法,对吧?相反,有一个问题的 ID。这是如何运作的?页面是否首先检查它是否是数字,如果是数字,它会加载问题控制器的 index 方法并将 ID 作为参数传递?如果它不是数字,它会将其视为一种方法?

谢谢你的帮助!

4

2 回答 2

0

当您访问一个问题时,您可以将操作作为“查看”,但通常更喜欢使用“索引”操作。任何没有指定操作的“问题”控制器的请求都可以路由到那里。

于 2012-04-11T12:55:52.517 回答
0

他们只是解析 questions_controller 中的 URL,使用条件语句将它们路由到他们的视图,例如,

如果它是“询问”,它会调用询问的 UI。

当它是一个 id 时,它只是加载问题的 UI 及其答案。

于 2012-04-11T13:01:32.327 回答