适当保存多个记录的cakePHP方式

时间:2014-07-23 12:01:23

标签: cakephp cakephp-2.0

我有一个事件表单,其中包含与以下事件相关的信息:start_timefinish_time等。

每个事件都会发生在用户身上。要求是可以为多个用户保存相同类型的事件,因此从表单中我也会收到用户列表。 现在这使得无法使用模型的本机保存功能,因此我有以下代码:

function saveNotRepeatedEvents($event, $users){

    foreach($users as $user){

          $event['Event']['user_id'] = $user;
          $this->create();
          $this->save($event);
    }   

         return true;
    }

首先,它不允许交易,我觉得它可以做得更好,比如“cakePHP方式”,但在研究过程中找不到任何东西。

因此,主要问题是如何在这种情况下介绍交易。但任何有关如何使其更像cakePHP方式的帮助或指导将非常感激。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是Model::saveAll($yourData),最后将使用一个事务(只要您的数据库引擎支持事务)。

主要的想法是,您将使用此表单

准备$ yourData作为数组
$yourData = array(
    array('Event' => array('user_id' => 1)),
    array('Event' => array('user_id' => 2)),
);

当然,你会在for循环中这样做,我只是给你一个主要的想法。

相关问题