这个循环应该放在哪里?

时间:2012-11-19 12:38:03

标签: model-view-controller language-agnostic

在MVC应用程序中,我有一个从视图发送到控制器的数组(行)数组。数组中的所有行都将表示数据库中的一行。

我被困在以下的地方:
- 我可以在模型中定义一个接受所有行数组的函数,然后在那里循环行 - 或者我可以定义一个接受单行的函数,并在控制器的循环中调用它。

哪种方法是正确的(从MVC的角度来看)?

编辑:
问题是我应该这样做:
$model->insertData($arrayOfRows);

foreach($arrayOfRows as $row) {
$model->insertRow($row);
}

3 个答案:

答案 0 :(得分:0)

在适当的MVC应用程序中,您的数据不会来自视图并首先进入控制器。

您的数据应该存在于模型中。您的数据库连接和从中提取的所有数据应由模型对象表示,并且只应在需要进行演示时(例如,可视化数据)或进行与数据相关的应用程序级决策时公开给视图/控制器。

答案 1 :(得分:0)

所以我最终使用了第一个解决方案:
$model->insertData($arrayOfRows);
并循环模型中的行数组。

答案 2 :(得分:-1)

你试试下面的模式,

var $arr = [];

$arr.push($row); /*insert all rows to an array */

then from the jquery $.post, set the array to the parameter like,

$.post(
    '<controller/action>',
    { m: "[" + $arr + "]" },
    function (data){}
);