不使用方法PHP MVC传递参数

时间:2012-04-11 12:52:07

标签: php model-view-controller

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

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

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

当您访问某个问题时,您可以将该操作设置为“查看”,但通常首选使用“索引”操作。在没有指定操作的情况下对“问题”控制器的任何请求都可以在那里进行路由。

答案 1 :(得分:0)

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

如果是“问”它就会调用提问的UI。

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