在MVC应用程序中,我有一个从视图发送到控制器的数组(行)数组。数组中的所有行都将表示数据库中的一行。
我被困在以下的地方:
- 我可以在模型中定义一个接受所有行数组的函数,然后在那里循环行
- 或者我可以定义一个接受单行的函数,并在控制器的循环中调用它。
哪种方法是正确的(从MVC的角度来看)?
编辑:
问题是我应该这样做:
$model->insertData($arrayOfRows);
或
foreach($arrayOfRows as $row) {
$model->insertRow($row);
}
答案 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){}
);