【发布时间】:2013-07-23 07:16:28
【问题描述】:
我有一个带有自定义表格的扩展程序,其中之一是我无法开始工作的。当我尝试从中findOneByUid() 时,我似乎得到了正确的记录,但除了uid 和pid 之外,所有属性的值都为null。
表的名称是:tx_myext_domain_model_advertisercategories。我以前在广告客户和类别之间有一个下划线,但似乎这是 extbase 期望的方式。
我已经配置了:
- ext_tables.php & ext_tables.sql
- \Domain\Model\Advertisercategories.php
- \Domain\Repository\AdvertisercategoriesRepository.php
- \Configuration\TCA\Advertisercategories.php
我已在此处将这些文件上传到 Github: https://gist.github.com/kuipersb/4a5ef7f14ecc979866ae
执行findOneByUid() 或我的自定义方法searchAdvertiser() 时得到的输出如下:
object(VENDOR\MyExt\Domain\Model\Advertisercategories)[334]
protected 'advertiserId' => null
protected 'name' => null
protected 'uniqueCode' => null
protected 'discount' => null
protected 'uid' => int 1
protected '_localizedUid' => int 1
protected '_languageUid' => null
protected 'pid' => int 2
private '_isClone' (TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject) => boolean false
private '_cleanProperties' (TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject) =>
array (size=6)
'advertiserId' => null
'name' => null
'uniqueCode' => null
'discount' => null
'uid' => int 1
'pid' => int 2
但我希望:
advertiserId: 2
name: Test
unique_code: test
discount: 10.00
非常感谢任何帮助!
【问题讨论】:
-
它是否适用于扩展构建器在您编辑之前创建的代码?在后端添加记录时是否出现错误?
-
我已经从扩展构建器为
Advertisers和其他模型/存储库生成的代码中尽可能地复制了它。在后端添加记录似乎也不起作用。我得到一个空表单。 -
您是否使用扩展构建器完成了整个建模过程?这件事的基本思想是,您不再需要为“基本”内容复制和粘贴生成的类,因为一切都应该由扩展创建。您能否在加载了您的扩展程序后,在扩展程序构建器中发布建模窗格的屏幕截图?
-
完整以备日后参考;是的,所有使用 Extension Builder 构建的模型,除了这个新的类别模型。它基于 Advertisers 模型的副本。我认为复制一些文件并更改名称会更快..下次需要更加小心:)