我有一个事件表单,其中包含与以下事件相关的信息:start_time
,finish_time
等。
每个事件都会发生在用户身上。要求是可以为多个用户保存相同类型的事件,因此从表单中我也会收到用户列表。 现在这使得无法使用模型的本机保存功能,因此我有以下代码:
function saveNotRepeatedEvents($event, $users){
foreach($users as $user){
$event['Event']['user_id'] = $user;
$this->create();
$this->save($event);
}
return true;
}
首先,它不允许交易,我觉得它可以做得更好,比如“cakePHP方式”,但在研究过程中找不到任何东西。
因此,主要问题是如何在这种情况下介绍交易。但任何有关如何使其更像cakePHP方式的帮助或指导将非常感激。
答案 0 :(得分:1)
您正在寻找的是Model::saveAll($yourData),最后将使用一个事务(只要您的数据库引擎支持事务)。
主要的想法是,您将使用此表单
准备$ yourData作为数组$yourData = array(
array('Event' => array('user_id' => 1)),
array('Event' => array('user_id' => 2)),
);
当然,你会在for循环中这样做,我只是给你一个主要的想法。