我正在研究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()
和null
''
,但保存更新对象而不是保存新内容。
有没有办法重用$notification
对象?我想这样做是因为通知字段创建的逻辑有点复杂。
答案 0 :(得分:1)
Copy正是您要找的。 p>
// 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();
}