Я хочу «пустой» ObjectStorage при обновлении объекта:TYPO3 Extbase как опустошить ObjectStorage
Это TYPO3 4.6 с расширением Extbase, который позволяет показать/добавлять/редактировать/удалять наборы данных в веб-интерфейсе. На первый взгляд все выглядит хорошо.
Я одно поле ссылки в другой таблице:
TCA:
'partner' => array(
'exclude' => 0,
'label' => 'LLL:EXT:toco3_marketingdb/Resources/Private/Language/locallang_db.xlf:tx_toco3marketingdb_domain_model_firma.partner',
'config' => array(
'type' => 'select',
'size' => 5,
'foreign_table' => 'tx_toco3marketingdb_domain_model_partner',
'foreign_table_where' => 'ORDER BY tx_toco3marketingdb_domain_model_partner.partnerpkey',
'minitems' => 0,
'maxitems' => 20,
),
),
Модель:
/**
* Partner
*
* @var Tx_Extbase_Persistence_ObjectStorage<Tx_Toco3Marketingdb_Domain_Model_Partner>
* @lazy
*/
protected $partner;
/**
* Sets the partner
*
* @param Tx_Extbase_Persistence_ObjectStorage<Tx_Toco3Marketingdb_Domain_Model_Partner> $partner
* @return void
*/
public function setPartner(Tx_Extbase_Persistence_ObjectStorage $partner) {
$this->partner = $partner;
}
Контроллер:
$partner = new Tx_Extbase_Persistence_ObjectStorage();
if (count($partnerarr) > 0){
foreach($partnerarr as $p){
$partner->attach($this->partnerRepository->findByUid($p));
}
}
$organisation = $this->organisationRepository->findByUid($uid)
$organisation->setPartner($partner);
Это работает до тех пор, пока в ObjectStorage отсутствует объект. Поэтому я могу добавлять/удалять/изменять отношения. Но когда $ partnerarr пуст, объекты не привязаны к пустующему Tx_Extbase_Persistence_ObjectStorage, старые значения не удаляются. Я также попытался присвоить значение null или "", но ошибка возникает из-за необходимости ObjectStorage. Если я назначу пустую ObjectStorage я не получаю сообщение об ошибке, но старые значения по-прежнему поддерживать :(
Любую идею?
Спасибо
Christian
Спасибо @Wolfgang! Я должен был добавить новый ответ, потому что это было долго для комментария;) –