问题描述
我有一个由调度程序运行的命令控制器(进口商),该命令控制器应这样保存数据:
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
的行为未达到预期.
我知道extbase中的setSysLanguageUid()是否正确(( https://forge.typo3.org/issues/45873 ),尽管我无法完全解决问题.
如何手动存储到sys_language_uid列中?
PS:我已经尝试过 Extbase模型:setSysLanguageUid无法正常工作,但是可能我错过了什么
解决了,我上面有一个错字
@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);
I have a command controller (an importer) run by scheduler, which should persist data as such:
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);
}
While neither pid nor sys_language_uid are set in the model, setPid
behaves as expected, but setSysLanguageUid
does not.
I'm aware that something is or was not quite right with setSysLanguageUid() in extbase (https://forge.typo3.org/issues/45873), although I wasn't able to grasp the problem entirely.
How do I manually store into the sys_language_uid column?
PS: I've tried Extbase Model: setSysLanguageUid not working but probably I missed something
It's solved, I had a typo above
Solution from @Chi at 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;
}
And then $entry->setLanguageUid(-1);
这篇关于在extbase命令控制器中设置sys_language_uid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!