我正在使用cakephp 2.3.0。我有一个场景,我需要在表中插入数据,但我需要根据需要插入数据的用户数进行多次插入。如果我在$userIds array
中有一个值,或$userIds array
中有一个以上的值,则表中只插入一行。即如果我在数组中有两个值,我希望在我的表中插入两行。
我无法弄清楚如何使用$userIds array
中的不同值正确构建我的$ message数组。在下面的示例输出中,值5被3覆盖,3被4值覆盖。
当我在$ userIds数组中有2个或更多值时,我通过调试语句确认for循环在数组中每次都正确循环。
以下是调试语句的输出:
\ app \ Controller \ ActivitiesController.php(第134行)
'5'
\ app \ Controller \ ActivitiesController.php(第134行)
'3'
\ app \ Controller \ ActivitiesController.php(第134行)
'4'
\ app \ Controller \ ActivitiesController.php(第136行)
array(
'Message' => array(
'message' => 'The activity has been deleted.',
'user_id' => '4'
)
)
以下是我的控制器的代码片段:
$this->Activity->Message->create();
foreach ($userIds as $ids) {
$message = array(
'Message' => array(
'message' => 'The activity has been deleted.',
'user_id' => $ids
)
);
debug($ids);
}
debug($message);
$this->Activity->Message->saveMany($message);
答案 0 :(得分:2)
您每次都重置数组,而不是向其中添加一个元素。所以尝试像这样改变你的foreach
$message = array();
foreach ($userIds as $ids) {
$message[] = array(
'Message' => array(
'message' => 'The activity has been deleted.',
'user_id' => $ids
)
);
debug($ids);
}