sys_category 在 powermail 保存数据完成器中
sys_category in a powermail save data finisher
我想在自己的 extbase 扩展的数据 table 中写入 powermail 数据。该表单提供了一个 sys_category 的 uid,我想在我的扩展中保留它。
我整理器中的相关台词:
$obj = GeneralUtility::makeInstance('Vendor\myExt\Domain\Model\ProductRating');
$obj->setName('Huber');
$obj->setPrename('Hans');
// etc.
$this->persistenceManager->add($obj);
$this->persistenceManager->persistAll();
这按预期工作,条目保留在数据中 table。但是现在我想坚持给定的sys_category。这个:
$obj->setCategories(13); // 13 is the uid of the category
显然不起作用(“预期参数类型为‘\TYPO3\CMS\Extbase\Persistence\ObjectStorage’,提供了 'string')。我需要实现 sys_category 的 ObjectStorage,但我不知道如何实现.
非常感谢每一个提示...!
彼得
您必须创建 ObjectStorage 的新实例(例如 $os = new ObjectStorage();),现在您可以将对象添加到 objectStorage。在此之后,您可以在 setCategories() 函数中使用它。
Alex Kellner 的提示为我指明了方向。
我将详细描述它 - 也许有人会发现它有用:
首先注入类别存储库:
/**
* @var \TYPO3\CMS\Extbase\Domain\Repository\CategoryRepository
* @inject
*/
protected $categoryRepository;
然后创建新闻对象存储并附加给定类别:
$newCategories = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage;
$myCategory = $this->categoryRepository->findByUid(85);
$newCategories->attach($myCategory);
当然,类别的 uid 应该来自 powermail 表单...
这行得通。
谢谢亚历克斯!
我想在自己的 extbase 扩展的数据 table 中写入 powermail 数据。该表单提供了一个 sys_category 的 uid,我想在我的扩展中保留它。
我整理器中的相关台词:
$obj = GeneralUtility::makeInstance('Vendor\myExt\Domain\Model\ProductRating');
$obj->setName('Huber');
$obj->setPrename('Hans');
// etc.
$this->persistenceManager->add($obj);
$this->persistenceManager->persistAll();
这按预期工作,条目保留在数据中 table。但是现在我想坚持给定的sys_category。这个:
$obj->setCategories(13); // 13 is the uid of the category
显然不起作用(“预期参数类型为‘\TYPO3\CMS\Extbase\Persistence\ObjectStorage’,提供了 'string')。我需要实现 sys_category 的 ObjectStorage,但我不知道如何实现.
非常感谢每一个提示...!
彼得
您必须创建 ObjectStorage 的新实例(例如 $os = new ObjectStorage();),现在您可以将对象添加到 objectStorage。在此之后,您可以在 setCategories() 函数中使用它。
Alex Kellner 的提示为我指明了方向。 我将详细描述它 - 也许有人会发现它有用:
首先注入类别存储库:
/**
* @var \TYPO3\CMS\Extbase\Domain\Repository\CategoryRepository
* @inject
*/
protected $categoryRepository;
然后创建新闻对象存储并附加给定类别:
$newCategories = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage;
$myCategory = $this->categoryRepository->findByUid(85);
$newCategories->attach($myCategory);
当然,类别的 uid 应该来自 powermail 表单...
这行得通。
谢谢亚历克斯!