我对PHP中的MVC设计模式有疑问。
如果您访问Stack Overflow上的问题,则URL将变为“stackoverflow.com/questions/[id]”,如果您转到“Ask Question”,则URL将变为“stackoverflow.com/questions/ask".
我认为这通常意味着加载了名为“questions”的控制器,而“ask”是该控制器中的一种方法,它告诉视图显示一个表单以便用户提出问题。但是当你访问一个问题时,没有方法,对吧?而是有一个问题的ID。这是如何运作的?页面是否首先检查它是否为数字,如果是数字,它是否加载问题控制器的索引方法并将ID作为参数传递?如果它不是一个数字,它会把它当作一种方法吗?
感谢您的帮助!
答案 0 :(得分:0)
当您访问某个问题时,您可以将该操作设置为“查看”,但通常首选使用“索引”操作。在没有指定操作的情况下对“问题”控制器的任何请求都可以在那里进行路由。
答案 1 :(得分:0)
他们只是解析questions_controller中的URL,使用条件语句将它们路由到他们的视图,例如,
如果是“问”它就会调用提问的UI。
当它是一个id时,只需加载问题的UI及其答案。