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
Routing 类型3 9.5-新路由增强器的问题_Routing_Typo3_Extbase_Typo3 9.x - Fatal编程技术网

Routing 类型3 9.5-新路由增强器的问题

Routing 类型3 9.5-新路由增强器的问题,routing,typo3,extbase,typo3-9.x,Routing,Typo3,Extbase,Typo3 9.x,我正在尝试为extbase扩展设置新的口语URL路由。但在前端的细节链接中,绝对不会发生任何事情 这是我的yaml站点配置代码(NewsPlugin配置正在运行,但CardealerPlugin没有): extTables.php \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'Cardealer', 'Pi1', 'Cardealer' ); 有人能帮忙吗?差不多一个星期后,我找到了一个解决办

我正在尝试为extbase扩展设置新的口语URL路由。但在前端的细节链接中,绝对不会发生任何事情

这是我的yaml站点配置代码(NewsPlugin配置正在运行,但CardealerPlugin没有):

extTables.php

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'Cardealer',
    'Pi1',
    'Cardealer'
);

有人能帮忙吗?差不多一个星期后,我找到了一个解决办法

a) 我的扩展的记录现在有了新的slug TCA字段,它生成唯一的URL段

'slug' => [
    'exclude' => true,
    'label' => 'URL Segment',
    'config' => [
        'type' => 'slug',
        'prependSlash' => true,
        'generatorOptions' => [
            'fields' => ['title'],
            'prefixParentPageSlug' => true,
        ],
        'fallbackCharacter' => '-',
        'eval' => 'uniqueInSite',
    ],
],
b) 我的YAML配置:

routeEnhancers:
  CardealerPlugin:
    type: Extbase
    limitToPages: [86]
    extension: Cardealer
    plugin: Pi1
    routes:
      -
        routePath: '/{uid_var}'
        _controller: 'Standard::show'
        _arguments:
          uid_var: car
    defaultController: 'Standard::list'
    aspects:
      uid_var:
        type: PersistedAliasMapper
        tableName: 'tx_cardealer_domain_model_car'
        routeFieldName: 'slug'
c) 流体链接

<f:link.action action="show" controller="Standard" pageUid="{settings.pid.details}" arguments="{car: '{car.uid}'}">

差不多一周后,我找到了一个解决方案

a) 我的扩展的记录现在有了新的slug TCA字段,它生成唯一的URL段

'slug' => [
    'exclude' => true,
    'label' => 'URL Segment',
    'config' => [
        'type' => 'slug',
        'prependSlash' => true,
        'generatorOptions' => [
            'fields' => ['title'],
            'prefixParentPageSlug' => true,
        ],
        'fallbackCharacter' => '-',
        'eval' => 'uniqueInSite',
    ],
],
b) 我的YAML配置:

routeEnhancers:
  CardealerPlugin:
    type: Extbase
    limitToPages: [86]
    extension: Cardealer
    plugin: Pi1
    routes:
      -
        routePath: '/{uid_var}'
        _controller: 'Standard::show'
        _arguments:
          uid_var: car
    defaultController: 'Standard::list'
    aspects:
      uid_var:
        type: PersistedAliasMapper
        tableName: 'tx_cardealer_domain_model_car'
        routeFieldName: 'slug'
c) 流体链接

<f:link.action action="show" controller="Standard" pageUid="{settings.pid.details}" arguments="{car: '{car.uid}'}">

当前存在一个错误,如果在TypoScript设置中为插件启用了“skipDefaultArguments”功能,则会中断非默认插件控制器的路由

因此,目前,请确保扩展键入脚本配置中的
skipDefaultArguments
处于非活动状态

plugin.tx_myextension {
    features {
        skipDefaultArguments = 0
    }
}
当前存在一个错误,如果在TypoScript设置中为插件启用了“skipDefaultArguments”功能,则会中断非默认插件控制器的路由

因此,目前,请确保扩展键入脚本配置中的
skipDefaultArguments
处于非活动状态

plugin.tx_myextension {
    features {
        skipDefaultArguments = 0
    }
}

分机:cardealer未知,可能是自己的Type3扩展名。您是否确保配置的值与扩展匹配?插件名“Pi1”和控制器名“Cardealer”?我认为这些值是正确的。我添加了extTables.phpI中的代码。我不知道这是否是原因,但可能是这部分中的额外空间:{'model_description':'car'}另一个原因可能是您注册插件的地方。我在扩展名的Configuration/TCA/Override/tt_content.php中执行此操作,而不是在extTables.php中。此外,我在扩展名前面添加了供应商,如下:\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin('Vendor.extensionkey'、'Pi1'、'myplugin')@谢谢你的回答。我已经创建了Overides文件并在registerPlugin()中设置了名称空间。但它没有效果:-(您是如何建立到详细信息视图的链接的?似乎不可能。我怀疑这是因为如果我在新闻列表模板中使用,链接也不会解析为讲话URL。EXT:cardealer未知,可能是自己的TYPO3扩展名。您是否确保配置的值与扩展名匹配?Fx:插件名称“Pi1”和控制器名称“Cardealer”?我认为值是正确的。我添加了extTables中的代码。phpI不知道这是否是原因,但可能是这部分中的额外空间:{'model_description':'car'}另一个原因可能是您注册插件的位置。我在扩展名中的Configuration/TCA/Override/tt_content.php中执行此操作,而不是在extTables.php中。此外,我在扩展名前面添加了供应商,如下所示:\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin('Vendor.extensionkey','Pi1','myplugin'));@AlexanderGrein:谢谢你的回答。我已经创建了Overides文件并在registerPlugin()中设置了名称空间。但是它没有任何效果:-(你是如何建立到详细信息视图的链接的?这似乎不可能。我怀疑这一点,因为如果我在新闻列表模板中使用,链接也不会解析为发言URL。这不是原因。我的问题已经解决了。请参阅第一个答案确定,但只要人们遇到同样的问题,就会通过谷歌找到这个答案可能会解决他们的问题,就像它为我所做的那样。这不是原因。我的问题已经解决了。请参阅第一个答案确定,但如果人们会遇到同样的问题并通过谷歌找到它,这个答案可能会解决他们的问题,就像它为我所做的一样。答案很好。除此之外。如果你只使用一个简单的内容元素扩展,yaml property插件必须是插件:“”,流体链接必须有extensionName=“MyExtension”。如果TCA prependSlash+PrefExparentPageslug为true,则我还有一个FE错误。回答很好。除此之外,如果您只使用简单的内容元素扩展,yaml属性插件必须是插件:“”,流体链接必须有extensionName=“MyExtension”。如果TCA prependSlash+PREFIXPARENTPAGESSLUG为真,我还有一个FE错误。