![](/img/trans.png)
[英]TYPO3 6.2 extbase repository object cloning not saving records properly
[英]TYPO3 6.2 Extbase: Persisted Object still Modified
這可能是一個簡單的問題,我只是對其進行監督。
我想做什么:
我有一個模型,我只是創建它的一個實例,用數據填充它,然后使用我的存儲庫的add($ object)函數。 然后,我調用persistenceManager來保存我的條目。
整個控制器是后端模塊的一部分。
我必須堅持輸入手冊,因為有一個@header重定向,這是因為SSO API調用之后將我重定向回去。
問題是什么:
我的調試提示,在將值添加到對象后,屬性正確填充到了對象。 調用persistAll函數后,我的對象被保留,但是值顯示為“修改”。
結果是:
我的表中有一個空對象。
時間一些代碼(縮短)
/**
* myObjectRepository
*
* @var \MyVendor\MyExt\Domain\Repository\MyObjectRepository
* @inject
*/
protected $myObjectRepository;
/**
* @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
* @inject
*/
protected $objectManager;
/**
* @var \TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface
* @inject
*/
protected $persistenceManager;
/**
* action verify
*
* @return void
*/
public function verifyAction() {
$myObject = $this->objectManager->get('\\MyVendor\\MyExt\\Domain\\Model\\MyObject');
$myObject->setName('Nice Name');
$myObject->setAge(20);
$this->myObjectRepository->add($myObject);
$this->persistenceManager->persistAll();
}
這是給我一個嘗試做的想法。
這個問題讓我有些震驚。 正常的行為應該是一個持久數據庫條目。 也許只是監督一個簡單的細節。
同樣的問題在這里! 調試顯示,在將數據傳遞給DB之前,名為$ dataMap-> isPersistableProperty($ propertyName)函數的persistentObject函數。
此功能需要TCA
/**
* Returns TRUE if the property is persistable (configured in $TCA)
*
* @param string $propertyName The property name
* @return boolean TRUE if the property is persistable (configured in $TCA)
*/
public function isPersistableProperty($propertyName) {
return isset($this->columnMaps[$propertyName]);
}
因此,請確保已設置您的TCA並正確將屬性傳遞給數據庫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.