2016-06-08 60 views
1

我具有由调度器运行一个命令控制器(进口商)sys_language_uid,这应该坚持数据作为这样的:设置在extbase命令控制器

foreach ($items as $item){ 
    // store it 
    $entry = $this->objectManager->get('STUBR\Importer\Domain\Model\Item'); 
    $entry->setTitle($item['Title']); 
    $entry->setData(json_encode($item)); 
    // manually set the storage page (defined in scheduler form) 
    $entry->setPid($itemStoragePid); // works 
    // manually set the language (defined in scheduler form) 
    // EDIT 
    // $entry->setSysLanguageUid = -1; // had typo 
    $entry->set_languageUid(-1); // works 
    // END EDIT 
    $this->itemRepository->add($entry); 
} 

虽然没有PID也不sys_language_uid在模型设定,setPid的行为如预期的那样,但setSysLanguageUid没有。

我知道有些东西是或不是很正确与setSysLanguageUid()在extbase(https://forge.typo3.org/issues/45873),虽然我无法完全掌握问题。

如何手动存储到sys_language_uid列?

PS:我已经试过Extbase Model: setSysLanguageUid not working但也许我错过了什么

回答

1

它解决了,我只好从上面@Chi

解决一个错字在https://stackoverflow.com/a/33798615/160968

/** 
* languageUid 
* @var int 
*/ 
protected $languageUid; 

/** 
* @param int $languageUid 
* @return void 
*/ 
public function setLanguageUid($languageUid) { 
    $this->languageUid = $languageUid; 
} 

/** 
* @return int 
*/ 
public function getLanguageUid() { 
    return $this->languageUid; 
} 

然后$entry->setLanguageUid(-1);

+0

我会说它是'setLanguageUid',坚持惯例;) – pduersteler

+0

啊,我以为那下划线是哈哈d一些隐藏的功能!所以你的意思是保留吸气剂/吸附剂,但按常规命名它们? – Urs

+0

是的。对于那些认为这个解决方案无法正常工作的人来说,它可以用于设置sys_language_uid,但是由于datamapper的原因,它可能不会像数据库那样持久存在。 – pduersteler