简体   繁体   English

Neos插件的路由

[英]Routes for Neos plugin

I'm trying to define routes for my plugin. 我正在尝试为插件定义路由。 Everything is working as it should, because I got pretty URL on output, but unfortunately while I'm trying to access it I get an 404 error with message: 一切都按预期进行,因为我在输出中获得了漂亮的URL,但是不幸的是,当我尝试访问它时,出现了404错误消息:

#1303209195: No controller could be resolved which would match your request. #1303209195:无法解析与您的请求匹配的控制器。 Package key: "", controller name: "Standard". 软件包密钥:“”,控制器名称:“ Standard”。 (GET http://test.local/dashboard/page/subpage/q/1fcff21b-7690-4f54-7491-f49c825ca05f/38f8b0cf-03e9-1717-b5b3-9bc7aa926862 ) (获取http://test.local/dashboard/page/subpage/q/1fcff21b-7690-4f54-7491-f49c825ca05f/38f8b0cf-03e9-1717-b5b3-9bc7aa926862

Main Routes.yaml : 主要Routes.yaml

-
  name: 'AcmeMyPlugin'
  uriPattern: '<AcmeMyPluginSubroutes>'
  subRoutes:
    AcmeMyPluginSubroutes:
      package: 'AcmeMyPlugin'
      variables:
        'defaultUriSuffix': ''

-
  name: 'TYPO3Neos'
  uriPattern: '<TYPO3NeosSubroutes>'
  subRoutes:
    'TYPO3NeosSubroutes':
      package: 'TYPO3.Neos'
      variables:
        'defaultUriSuffix': ''

Plugin Routes.yaml : 插件Routes.yaml

-
  name: 'Nice urls for my plugin'
  uriPattern:    '{node}/q(/{--acme_myplugin-element.object1}/{--acme_myplugin-element.object2})'
  defaults:
    '@package':    'TYPO3.Neos'
    '@controller': 'Frontend\Node'
    '@action':     'show'
    '@format': 'html'
    '--acme_myplugin-element':
      '@package': 'Acme.MyPlugin'
      '@controller': 'Standard'
      '@action': 'display'
      '@format': 'html'
  routeParts:
    node:
      handler:    TYPO3\Neos\Routing\FrontendNodeRoutePartHandler
  appendExceedingArguments: FALSE

Root.ts2 for plugin: 用于插件的Root.ts2

prototype(Acme.MyPlugin:Element) < prototype(TYPO3.Neos:Plugin) {
    package = 'Acme.MyPlugin'
    controller = 'Standard'
    action = 'display'
}

Action which I'm trying to execute: 我要执行的动作:

public function displayAction(Object1 $object1 = NULL, Object2 $object2 = NULL) {
    // body
}

I'm using Neos 2.0.x-dev. 我正在使用Neos 2.0.x-dev。 Did I miss something in my configuration? 我是否错过了配置中的某些内容?

Ok, I finally figure out what was wrong. 好的,我终于弄清楚出了什么问题。 I defined my route for plugin with optional params, which somehow was wrongly interpreted by request handler. 我为带有可选参数的插件定义了路由,请求处理程序以某种方式错误地解释了该路由。 Correct routes for my plugin should looks as follows: 我的插件的正确路由应如下所示:

-
  name: 'Nice urls for my plugin'
  uriPattern:    '{node}/q/{--acme_myplugin-element.object1}/{--acme_myplugin-element.object2}'
  defaults:
    '@package':    'TYPO3.Neos'
    '@controller': 'Frontend\Node'
    '@action':     'show'
    '@format': 'html'
    '--acme_myplugin-element':
      '@package': 'Acme.MyPlugin'
      '@controller': 'Standard'
      '@action': 'display'
      '@format': 'html'
  routeParts:
    node:
      handler:    TYPO3\Neos\Routing\FrontendNodeRoutePartHandler
  appendExceedingArguments: FALSE

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM