在PHP MVC控制器中发布?

在PHP MVC控制器中发布?,php,model-view-controller,controller,Php,Model View Controller,Controller,我正在学习用于后端实现的PHP MVC模式。看看这个极好的例子: 在PHP中实现MVC:控制器 我对GET中的执行流程感到满意。 但是没有提到帖子中发生了什么。POST的典型控制器代码会做什么?我想知道我是否误解了一些显而易见的事情,因为我在之前的SO帖子或谷歌中找不到类似的情况 例如:管理人员(姓名、姓氏、年龄)的应用程序希望在帖子点击控制器时向db添加记录。 接下来会发生什么? 我的猜测是“视图”根本没有被使用,或者可能是为了确认? 是否只有一个从控制器到模型类的调用将记录添加到数据库中?

我正在学习用于后端实现的PHP MVC模式。看看这个极好的例子:

在PHP中实现MVC:控制器

我对GET中的执行流程感到满意。 但是没有提到帖子中发生了什么。POST的典型控制器代码会做什么?我想知道我是否误解了一些显而易见的事情,因为我在之前的SO帖子或谷歌中找不到类似的情况

例如:管理人员(姓名、姓氏、年龄)的应用程序希望在帖子点击控制器时向db添加记录。 接下来会发生什么? 我的猜测是“视图”根本没有被使用,或者可能是为了确认? 是否只有一个从控制器到模型类的调用将记录添加到数据库中? 或者我是否要跳过控制器,直接转到“添加记录”脚本

是否有可用的示例

提前感谢,,
Ari通常,控制器会处理请求(控制器处理所有请求),然后调用模型根据请求实际操作数据,然后重定向到其他地方(触发新的GET请求),或者调用视图输出结果页面。

好吧,POST与GET基本相同,只是客户端发送到服务器的一些随机信息块。所以你可以用同样的方法来对待它

我在PHP中使用CodeIgniter MVC框架。它使用GET URI路由到控制器及其方法。当POST请求到来时,它将以相同的方式处理其URI。后面的操作由程序员完成,程序员可以直接或通过包装器访问请求后数据,也可以根本不使用它

我得说你把注意力放错地方了。MVC不是一切的模型,它没有说明如何处理POST或GET请求。这只是一个简单的原则,在“MVC”这个名字成为著名的关于逻辑、数据和表示分离的原则之前很多年就知道了。大多数软件(从旧软件到新软件)实际上都会进行这种拆分,因为在大多数情况下很难不这样做。在一些应用程序中,边界并不明显,有些甚至没有对象模型。应用程序的实现始终取决于您,因为MVC并没有告诉您要编写什么,只是提供了一些关于代码最高层次组织的线索


顺便说一句,很抱歉我的英语不好。

好吧,如果你要构建自己的MVC模式解决方案,你可以做一件棘手的事情。既然你在处理MVC,你应该有一个非常可靠的路由管理器。因此,在解析URL并定义要触发的控制器/方法之后,您可以做出如下操作:

<?php 
    ...;
    $method_name = (count($_POST) > 0) ? "post_".$route_result : $route_result;
    ...;
<?php
namespace Controllers;

class MyController extends \System\Controller {
    function my_method($whatever = null){
        ...;
        return $this->view($model_or_whatever); // supposed that you prepared view Class in routes
    }

    function post_my_method($whatever = null){
        ...;
        return $this->view($model_or_whatever); // supposed that you prepared view Class in routes
    }

}

谢谢大家。我认为这是正确答案,因为它回答了我的问题。我只想提一下,我以前在桌面环境中使用过MVC,但这篇文章让我感到困惑。我会试着把它当作一个GET。请不要在这里使用txtspeak。“u”、“r”和“smth”不是单词。下次不会重复了,我的英语不是很好,或者我只是习惯于缩短我的信息