0

我正在使用 cakephp 2.3.0。我有一个场景,我需要在表中插入数据,但我需要根据需要插入数据的用户数量进行多次插入。如果我在 中有一个值$userIds array,或者在 中有超过 1 个值$userIds array,则表中只插入一行。即,如果我在数组中有两个值,我希望在我的表中插入两行。

我不知道如何正确地使用不同的值构建我的 $message 数组$userIds array。在下面的示例输出中,值 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);
4

1 回答 1

2

您每次都重置您的数组,而不是向其中添加一个元素。所以尝试像这样改变你的 foreach

$message = array();
foreach ($userIds as $ids) {
    $message[] = array(
                    'Message' => array(
                        'message' => 'The activity has been deleted.',
                        'user_id' => $ids                                       
                    )
                );

    debug($ids);                        
}
于 2013-04-07T02:58:21.360 回答