0

我正在开发 Symfony 应用程序中的某种通知模块。我正在迭代一个用户,为每个在其个人资料中具有活动标志Doctrine_Collection的用户创建一个:Notification

// Create and define common values of notification
$notification = new Notification();
$notification->setField1('...');
$notification->setField2('...');
...

// Post notification to users
foreach ( sfGuardUserTable::getInstance()->findByNotifyNewOrder(true) as $user ) {
  $notification->setUserId($user->getId());
  $notification->save();
}

问题是一旦我保存了第一个通知,我就无法重用该对象在数据库中存储新记录。我尝试过$notification->setId()使用nulland '',但保存会更新对象而不是保存新对象。

有没有办法重用$notification对象?我想这样做是因为通知字段创建的逻辑有点复杂。

4

1 回答 1

1

副本是你要找的。

// Create and define common values of notification
$notification = new Notification();
$notification->setField1('...');
$notification->setField2('...');
...

// Post notification to users
foreach ( sfGuardUserTable::getInstance()->findByNotifyNewOrder(true) as $user ) {
  $newNotification = $notification->copy();
  $newNotification->setUserId($user->getId());
  $newNotification->save();
}
于 2011-09-04T09:30:09.353 回答