TYPO3 tx_news 添加自定义字段问题

Chr*_*ith 0 typo3 tx-news typo3-8.x

我在为typo3 8.7.20 添加 3 个自定义字段到 tx_news 扩展时遇到了问题。

\n\n

我已经使用过本教程: http://keinerweiss.de/525-die-extbase-extension-news-um-ein-feld-erweitern.html

\n\n

但我无法让它工作。

\n\n

在后端,我可以看到新字段(lat、lng、reciever),我可以用内容填充它们,当我保存它们时,它们位于数据库中。所以效果很好。

\n\n

在前端它不起作用。如果我没有登录 Typo3,我现在甚至看不到该页面。

\n\n

如果我已登录:在流体调试器中,我可以看到 3 个变量,但它们始终为空(即使我已在这些新字段中保存了带有某些内容的新闻记录)

\n\n

这是我的域模型:

\n\n
<?php\nnamespace Newsextend\\Newsextend\\Domain\\Model;\n\n/**\n * News model for default news\n *\n * @package TYPO3   \n * @subpackage tx_news\n */\nclass NewsDefault extends \\GeorgRinger\\News\\Domain\\Model\\News {\n/**\n * @var string\n */\nprotected $ext_lat;\n/**\n * @var string\n */\nprotected $ext_lng;\n/**\n * @var string\n */\nprotected $ext_reciever;\n\n/**\n * Get lat\n *\n * @return string\n */\npublic function getExt_lat()\n{\n    return $this->ext_lat;\n}\npublic function setExt_lat($ext_lat)\n{\n    $this->ext_lat = $ext_lat;\n}\n\n/**\n * Get lng\n *\n * @return string\n */\npublic function getExt_lng()\n{\n    return $this->ext_lng;\n}\npublic function setExt_lng($ext_lng)\n{\n    $this->ext_lng = $ext_lng;\n}\n\n/**\n * Get reciever\n *\n * @return string\n */\npublic function getExt_reciever()\n{\n    // return "teststring";\n    return $this->ext_reciever;\n}\npublic function setExt_reciever($ext_reciever)\n{\n    // return "teststring";\n    $this->ext_reciever = $ext_reciever;\n}\n\n/**\n * Set title\n *\n * @param string $subtitle subtitle\n * @return void\n */\npublic function setSubtitle($subtitle)\n{\n    $this->subtitle = $subtitle;\n}\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 Typescript setup.txt:

\n\n
    plugin.tx_news {\n    persistence {\n        classes {\n            GeorgRinger\\News\\Domain\\Model\\News {\n                subclasses {\n                    # three different classes are used for each news type\n                    # 0 == default news\n                    0 = Newsextend\\Newsextend\\Domain\\Model\\NewsDefault\n                }\n            }\n            Newsextend\\Newsextend\\Domain\\Model\\NewsDefault {\n                mapping {\n                    recordType = 0\n                    tableName = tx_news_domain_model_news\n                }\n            }\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

还有我的 ext_tables.php

\n\n
    <?php\ndefined(\'TYPO3_MODE\') || die(\'Access denied.\');\n\ncall_user_func(\n    function()\n    {\n\n        \\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addStaticFile(\'newsextend\', \'Configuration/TypoScript\', \'news_extend\');\n        \\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addStaticFile($_EXTKEY, \'Configuration/TypoScript\', \'news_extend\');\n    }\n);\n\n// define new fields\n$tempColumns = array(\n    \'ext_lat\' => array(\n        \'exclude\' => 0,\n        \'label\' => \'LAT\',\n        \'config\' => array(\n            \'type\' => \'input\',\n            \'size\' => 30,\n            \'eval\' => \'trim\'\n        ),\n    ),\n    \'ext_lng\' => array(\n        \'exclude\' => 0,\n        \'label\' => \'LONG\',\n        \'config\' => array(\n            \'type\' => \'input\',\n            \'size\' => 30,\n            \'eval\' => \'trim\'\n        ),\n    ),\n    \'ext_reciever\' => array(\n        \'exclude\' => 0,\n        \'label\' => \'F\xc3\xb6rderungsempf\xc3\xa4nger\',\n        \'config\' => array(\n            \'type\' => \'input\',\n            \'size\' => 30,\n            \'eval\' => \'trim\'\n        ),\n    ),\n);\n\n// add field to tca\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addTCAcolumns(\n    \'tx_news_domain_model_news\',\n    $tempColumns,\n    1\n);\n\n// add new field subtitle after title\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", \'ext_lat\', \'\', \'after:title\');\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", \'ext_lng\', \'\', \'after:ext_lat\');\n\\TYPO3\\CMS\\Core\\Utility\\ExtensionManagementUtility::addToAllTCAtypes("tx_news_domain_model_news", \'ext_reciever\', \'\', \'after:ext_lng\');\n
Run Code Online (Sandbox Code Playgroud)\n\n

谁能看到我的问题吗?\n谢谢\n克里斯托弗·史密斯

\n

Geo*_*ger 5

在 extbase 中下划线转换为大写。因此,如果数据库中的字段是ext_lat,那么属性必须是$extLat,并且 getter 和 setter 也必须根据该字段进行更改。