Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MVC,处理POST数据,准备表单字段值_Php_Model View Controller_Codeigniter - Fatal编程技术网

Php MVC,处理POST数据,准备表单字段值

Php MVC,处理POST数据,准备表单字段值,php,model-view-controller,codeigniter,Php,Model View Controller,Codeigniter,我正在使用Codeigniter开发一个应用程序,并且一直在阅读有关Ruby on the Rails的内容。特别是瘦小的控制器,肥胖的模型似乎很有意义。它真的让我看到了控制器,知道到底发生了什么,并允许非常快速的调整和错误修复 然而,我遇到的一个障碍是,我在哪里处理POST数据。我是否将其调用到控制器中的一组变量中,并将其传递给模型。还是直接从模型中访问它 此外,在考虑预填充表单字段值时,我也遇到了同样的问题。我应该从控制器调用一个方法并将结果传递给视图,还是只生成一组变量并直接从控制器传递给

我正在使用Codeigniter开发一个应用程序,并且一直在阅读有关Ruby on the Rails的内容。特别是瘦小的控制器,肥胖的模型似乎很有意义。它真的让我看到了控制器,知道到底发生了什么,并允许非常快速的调整和错误修复

然而,我遇到的一个障碍是,我在哪里处理POST数据。我是否将其调用到控制器中的一组变量中,并将其传递给模型。还是直接从模型中访问它

此外,在考虑预填充表单字段值时,我也遇到了同样的问题。我应该从控制器调用一个方法并将结果传递给视图,还是只生成一组变量并直接从控制器传递给视图

非常感谢您的指导。

看起来,模特(银行家)不应该直接与视图(客户)交谈,反之亦然。因此,始终使用控制器(出纳员)作为中间人。

看起来,模特(银行家)不应该直接与视图(客户)交谈,反之亦然。因此,始终使用控制器(出纳员)作为中间人。

我不确定这里的“规则”是什么,但我通常坚持只检查需要在控制器中执行的操作。因此,找出已经发布的内容,以及接下来应该发生什么。通常是调用模型进行选择、更新等操作,包括POST数据,这些数据将在模型中进一步处理,具体取决于调用的函数

至于预填充,我总是试图将所有这些逻辑排除在外。因此,在控制器中,我检查应该显示哪些变量(默认内容或发布的数据),然后将它们发送到视图。这样,视图保持简单,您只需显示一个变量。

我不确定这里的“规则”是什么,但我通常只检查需要在控制器中执行的操作。因此,找出已经发布的内容,以及接下来应该发生什么。通常是调用模型进行选择、更新等操作,包括POST数据,这些数据将在模型中进一步处理,具体取决于调用的函数


至于预填充,我总是试图将所有这些逻辑排除在外。因此,在控制器中,我检查应该显示哪些变量(默认内容或发布的数据),然后将它们发送到视图。这样,视图保持简单,您只需显示一个变量。

有几种方法可以处理此问题,但通常情况下,视图调用
$this->CI->input->post($item)
并不一致。通常,如果仅限于显示数据,则视图是最好的,它应该进行的唯一函数调用是
anchor
lang
,等等。还最好避免让模型从外部获取数据,尤其是当它们可以在信息中传递时(可能的例外是语言和配置数据). CodeIgniter中传统的关注点分离是模型存储数据,视图显示数据,控制器对其进行操作(有时是库操作数据,控制器调用库函数)

如果将信息传递到视图中,然后从视图输出为
,则预填充更为清晰,但也存在一些问题

基本上,我遵循以下规则:
  • 模型不接收来自控制器的输入保存。
    • 如果需要操作,它只调用帮助函数和库方法。
    • 如果数据需要以特定方式存储(即:序列化等),它只操作数据
  • 视图不接收来自控制器的输入保存。
    • 它只调用用于字符串查找的帮助函数,而不调用库方法。
    • 它只需要在查找配置或语言数据时操作数据。这应该理解为翻译

有几种方法可以处理此问题,但通常情况下,视图调用
$this->CI->input->post($item)
并不一致。通常,如果仅限于显示数据,则视图是最好的,它应该进行的唯一函数调用是
anchor
lang
,等等。还最好避免让模型从外部获取数据,尤其是当它们可以在信息中传递时(可能的例外是语言和配置数据). CodeIgniter中传统的关注点分离是模型存储数据,视图显示数据,控制器对其进行操作(有时是库操作数据,控制器调用库函数)

如果将信息传递到视图中,然后从视图输出为
,则预填充更为清晰,但也存在一些问题

基本上,我遵循以下规则:
  • 模型不接收来自控制器的输入保存。
    • 如果需要操作,它只调用帮助函数和库方法。
    • 如果数据需要以特定方式存储(即:序列化等),它只操作数据
  • 视图不接收来自控制器的输入保存。
    • 它只调用用于字符串查找的帮助函数,而不调用库方法。
    • 它只需要在查找配置或语言数据时操作数据。这应该理解为翻译

控制器应完成所有数据处理

使用控制器获取POST数据,然后将其传递给模型

模型通过将true传递回控制器来确认一切正常


此时,控制器将要显示的数据传递到成功视图。

控制器应完成所有数据处理

使用控制器获取POST数据,然后将其传递给模型