2013-07-23 19 views
1

我有一个自定义表的扩展,其中一个我不能工作。当我尝试findOneByUid()从它,我似乎得到正确的记录,但除了uidpid所有属性的值为null当提取一个模型时,除了uid,所有的属性都是空的

表的名字是:tx_myext_domain_model_advertisercategories。我曾经在广告客户和类别之间有一个下划线,但看起来这是extbase期待的方式。

我已经配置:

  • ext_tables.php & ext_tables.sql
  • \域\型号\ Advertisercategories.php
  • \域\库\ AdvertisercategoriesRepository.php
  • \配置\ 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 

任何非常感谢!

+0

它是否与扩展生成器在编辑之前创建的代码一起工作?当你在后端添加记录时,你会遇到错误吗? – Michael

+0

我已经尽可能地从扩展程序生成器为广告客户和其他模型/存储库生成的代码复制了它。在后端添加记录似乎也没有工作..我得到一个空的表单。 –

+0

您是否使用扩展程序生成器完成整个建模过程?这件事的基本思想是,你不需要复制和粘贴生成的“基本”东西的类,因为一切都应该由扩展创建。您可以在加载扩展程序的扩展程序构建器中发布建模窗格的屏幕截图吗? – Michael

回答

0

我的问题是在ext_tables.php。该说的部分:

'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Configuration/TCA/Advertisers.php', 

在最终它不应该是Advertisers.php,但AdvertiserCategories.php。一个小的错字.. :)

感谢您花时间调查,虽然迈克尔!这是很多我附加的代码。

但复数与单数名称似乎没有问题。虽然下次使用单数名称会更好,但我同意这一点:)

1

看起来像你已经“调整”了代码中的一些东西。数据类型\string应该只是string我想。模型\VENDOR\MyExt\Domain\Model\Advertisers应该(以命名约定)单数命名,所以只需\VENDOR\MyExt\Domain\Model\Advertiser和你的类的成员变量应该是$advertiser而不是$advertiserId

当你在代码中放入一个对象时,TYPO3只会将uid写入该字段,所以不需要在最后给id命名字段。

+0

感谢您的建议,我会试一试。 –

+0

我已经尝试重新命名为单数名称,但这并没有改变任何东西。然而,我发现了这个错误,并附上它作为一个新的答案。感谢您的时间和批评! –

相关问题