2012-11-19 49 views
1

在MVC应用程序中,我从视图中向控制器发送了一个数组(行)数组。数组中的所有行将代表数据库中的一行。这个循环放在哪里?

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

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

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

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

+0

控制器只传递值。处理它们应该发生在模型层。从你模糊的解释 - 很可能循环将在服务级别。 –

回答

0

所以我最终使用的第一个解决方案:
$model->insertData($arrayOfRows);
和循环模型内部行的阵列。

0

在适当的MVC应用程序,你的数据不会从视图中来,并在去控制器第一名。

您的数据应该存在于模型中。您的数据库连接和从其中取出的所有数据都应该由模型对象来表示,并且只有在需要呈现(例如,可视化数据)时才会暴露给视图/控制器,或者制作与数据相关的应用程序级决策。

+0

来自视图我的意思是这个信息被提交插入到数据库中。 – undefined

+0

Gotcha。我的错。 在这种情况下,您希望将数据直接传递给模型(可能通过控制器,具体取决于您如何设置),并且模型应该执行循环输入数据的工作,连接到数据库,并以适当的数据库格式插入新数据。 – honktronic

-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){} 
); 
+0

jquery不在问题中提及。 Downvoted。 – undefined