在 extbase 命令控制器中设置 sys_language_uid
Set sys_language_uid in an extbase command controller
我有一个调度程序的命令控制器(导入器)运行,它应该这样保存数据:
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 (https://forge.typo3.org/issues/45873) 中的 setSysLanguageUid() 有一些不对的地方,尽管我没能完全理解这个问题。
如何手动存储到 sys_language_uid 列?
PS:我试过了但可能我漏掉了什么
解决了,上面写错了
来自@Chi 的解决方案
/**
* 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);
我有一个调度程序的命令控制器(导入器)运行,它应该这样保存数据:
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 (https://forge.typo3.org/issues/45873) 中的 setSysLanguageUid() 有一些不对的地方,尽管我没能完全理解这个问题。
如何手动存储到 sys_language_uid 列?
PS:我试过了
解决了,上面写错了
来自@Chi 的解决方案
/**
* 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);