Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3 V10-EXT:news自定义类型和持久性映射_Typo3_Fluid_Extbase_Tx News_Typo3 10.x - Fatal编程技术网

TYPO3 V10-EXT:news自定义类型和持久性映射

TYPO3 V10-EXT:news自定义类型和持久性映射,typo3,fluid,extbase,tx-news,typo3-10.x,Typo3,Fluid,Extbase,Tx News,Typo3 10.x,我正在尝试升级TYPO3 10.4的一个扩展,它向tx_news()添加了一个自定义类型 我基于以下示例进行了迁移:中断: 类/Controller/NewsController.php 但是我调试流体模板中的条目,默认模型仍然使用 是我错过了什么,还是有人有一个有效的例子 谢谢你的帮助 更新: 我想创建一个新类型,在Georg Ringer的 我已经创建了一个小的扩展,在TYPO3 9.5中一切都很好,但在TYPO3 10.4中却没有。 对于TYPO3 10.4,原型不是MxnTeam\D

我正在尝试升级TYPO3 10.4的一个扩展,它向tx_news()添加了一个自定义类型

我基于以下示例进行了迁移:中断:

类/Controller/NewsController.php

但是我调试流体模板中的条目,默认模型仍然使用

是我错过了什么,还是有人有一个有效的例子

谢谢你的帮助


更新: 我想创建一个新类型,在Georg Ringer的

我已经创建了一个小的扩展,在TYPO3 9.5中一切都很好,但在TYPO3 10.4中却没有。

对于TYPO3 10.4,原型不是MxnTeam\Domain\Model\Team


更新日期:2020年6月29日:

tobenschmidt来自TYPO3 Slack channel()帮助我

返回[
\Mexan\MxnTeam\Domain\Model\Team::class=>[
“tableName”=>“tx\U新闻\U领域\U模型\U新闻”,
'recordType'=>\Mexan\MxnTeam\Domain\Model\Team::class,
],
\Mexan\MxnTeam\Domain\Model\Client::class=>[
“tableName”=>“tx\U新闻\U领域\U模型\U新闻”,
'recordType'=>\Mexan\MxnTeam\Domain\Model\Client::class,
],
\GeorgRinger\News\Domain\Model\News::class=>[
“tableName”=>“tx\U新闻\U领域\U模型\U新闻”,
//“记录类型”=>0,
“子类”=>[
\Mexan\MxnTeam\Domain\Model\Team::class,
\Mexan\MxnTeam\Domain\Model\Client::class,
]
],
];
即使使用两种自定义类型,这也可以正常工作。 但不幸的是,默认新闻不再加载 但是如果我添加
recordType=>0
,那么只有普通新闻和我的自定义类型可见,而不是类型1和2(内部和外部)

我更新了扩展名:

有没有办法防止这种情况发生?

您编写了“Classes/Controller/newsconner.php”,但必须在此处创建一个文件

extendnews/Configuration/Extbase/Persistence/Classes.php
然后把你的代码放进去。之后,不要忘记清除所有缓存。 完整的文件“Classes.php”应该如下所示

<?php
declare(strict_types = 1);

return [
  \Xyz\Extendnews\Domain\Model\Team::class => [
    'tableName' => 'tx_news_domain_model_news',
    'recordType' => \Xyz\Extendnews\Domain\Model\Team::class,
],
这对我很有用

实现新闻类型,如中所述

但在扩展名中添加以下文件,而不是所述的打字脚本:

ext_name/Configuration/Extbase/Persistence/Classes.php

<?php

return [
    \GeorgRinger\News\Domain\Model\News::class => [
        'subclasses' => [
            3 => \Vendor\ExtName\Domain\Model\MyCustomNewsType::class
        ]
    ],
    Vendor\ExtName\Domain\Model\MyCustomNewsType::class => [
        'tableName' => 'tx_news_domain_model_news',
        'recordType' => 3,
    ],
];

谢谢你的帮助,我不想扩展新闻,我想创建一个新类型,在Georg Ringer的[手册][1]中解释过。我创建了一个小扩展,所有功能都可以使用TYPO3 9.5,但不能使用TYPO3 10.4。[DEMO EXT][2]TYPO3 10.4的原型不是MxnTeam\Domain\Model\Team[1]:[2]:recordType只是新闻表中用于过滤记录的一行。共享相同新闻记录的所有扩展都应使用相同的记录类型字符串。可能您必须手动更新DB表以符合此要求。我认为,“update 29.06.2020”示例的问题在于缺少类型号<代码>'subclass'=>[3=>\Mexan\MxnTeam\Domain\Model\Team::class,4=>\Mexan\MxnTeam\Domain\Model\Client::class,]
<?php

return [
    \GeorgRinger\News\Domain\Model\News::class => [
        'subclasses' => [
            3 => \Vendor\ExtName\Domain\Model\MyCustomNewsType::class
        ]
    ],
    Vendor\ExtName\Domain\Model\MyCustomNewsType::class => [
        'tableName' => 'tx_news_domain_model_news',
        'recordType' => 3,
    ],
];