TYPO3 V10-EXT:news自定义类型和持久性映射
我正在尝试升级TYPO3 10.4的一个扩展,它向tx_news()添加了一个自定义类型 我基于以下示例进行了迁移:中断: 类/Controller/NewsController.php 但是我调试流体模板中的条目,默认模型仍然使用 是我错过了什么,还是有人有一个有效的例子 谢谢你的帮助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
更新: 我想创建一个新类型,在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,
],
];