当前位置: 首页 > 知识库问答 >
问题:

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

戈嘉慕
2023-03-14

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

我基于以下示例进行了迁移:Breaking:#87623

类/控制器/NewsController.php

return [
  \Xyz\Extendnews\Domain\Model\Team::class => [
    'tableName' => 'tx_news_domain_model_news',
    'recordType' => 3,
],

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

我错过了什么还是有人有一个工作的例子。

谢谢你的帮助。

更新:我想创建一个新的类型,在Georg Ringer的手册中解释

我已经创建了一个小扩展,一切正常工作与TYPO3 9.5,但不是与TYPO3 10.4。演示EXT

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

更新29.06。2020:

TYPO3 Slack频道的Tobenschmidt(帖子)帮我。

return [
 \Mexan\MxnTeam\Domain\Model\Team::class => [
     'tableName' => 'tx_news_domain_model_news',
     'recordType' => \Mexan\MxnTeam\Domain\Model\Team::class,
 ],
 \Mexan\MxnTeam\Domain\Model\Client::class => [
     'tableName' => 'tx_news_domain_model_news',
     'recordType' => \Mexan\MxnTeam\Domain\Model\Client::class,
 ],
 \GeorgRinger\News\Domain\Model\News::class => [
     'tableName' => 'tx_news_domain_model_news',
     //'recordType' => 0,
     'subclasses' => [
         \Mexan\MxnTeam\Domain\Model\Team::class,
         \Mexan\MxnTeam\Domain\Model\Client::class,
     ]
 ],
];

但不幸的是,默认的新闻不再加载,但如果我添加recdType=

我更新了扩展名:mxn_团队

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


共有2个答案

莘昊
2023-03-14

您可以编写“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,
],

要使用新型号,请遵循格奥尔格·林格的typo3手册。组织机构

这里有一个工作示例

艾璞瑜
2023-03-14

这对我有用。。。

按照https://docs.typo3.org/p/georgringer/news/8.5/en-us/DeveloperManual/ExtendNews/AddCustomType/Index.html中的描述实现您的新闻类型

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

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,
    ],
];

在TYPO3 v10中删除了使用TypoScript(config.tx_extbase.persistence.classes)的方式

 类似资料:
  • 我正在尝试创建一个定制的permalink结构,它将允许我完成以下任务。 我有一个自定义的帖子类型称为"项目" 我有一个自定义分类法,称为项目类别,分配给CPT项目 我希望我的永久链接结构如下所示: 项目/类别/项目-名称 或 /%自定义后类型%/%自定义分类%/%后名称%/ 创建这样的永久链接结构会如何影响URL或其他页面?是否可以取消定义自定义永久链接结构并将其限制为单个CPT? 谢谢

  • 我正在寻找从经典Akka持久化迁移到Akka持久化类型。在这里找到的Lagom留档:1说“注意:从Lagom持久化(经典)迁移到Akka持久化类型时的唯一限制是需要完全关闭集群。即使所有持久数据都是兼容的,Lagom持久化(经典)和Akka持久化类型也不能共存。” 有人知道这是否适用于服务器可能知道的所有持久实体吗?例如,我使用的服务有3个独立的持久实体。我需要一次迁移所有3个,还是可以一次迁移一

  • 快住手!域模型不是持久性模型 如果这是真的,将持久性对象与域对象分开有什么好处呢?

  • 试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!

  • Rust 自定义数据类型主要是通过下面这两个关键字来创建: struct: 定义一个结构体 enum: 定义一个枚举类型 而常量的创建可以通过 const 和 static 关键字来创建。

  • 存在多种方法来重新定义现有类型的行为以及提供新的类型。 重写类型编译 一个常见的需求是强制更改类型的“字符串”版本,即在create table语句或其他SQL函数(如cast)中呈现的版本。例如,应用程序可能希望强制呈现 BINARY 适用于除一个平台外的所有平台 BLOB 待渲染。在本例中,使用现有的泛型类型 LargeBinary ,是大多数用例的首选。但是为了更准确地控制类型,每个方言的编