Bug #48977

f:link.action ignores controller with backslashes

Added by Simon Schaufelberger over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Must have
Category:
ViewHelpers
Target version:
-
Start date:
2013-06-10
Due date:
% Done:

0%

Has patch:
No

Description

I have a neos backend module and want to link to another controller. The controller is not straight under the controller folder but under Controller/Module/MyModule/.

I tried linking to MyController like that:

<f:link.action action="index" controller="Module\Module\MyController" class="btn neos-button">

but it just doesnt work.

I found an existing "example" for this:

<f:link.action package="TYPO3.Neos" controller="Backend\Backend" action="index">Content</f:link.action>

under \Packages\Application\TYPO3.Neos\Resources\Private\Templates\Backend\Content\Container.html

but that is also not working.

I don't know if this has ever worked or not so i don't know if its possible to trace it back to a working state.

History

#1 Updated by Bastian Waidelich over 6 years ago

  • Status changed from New to Closed
  • Assignee set to Bastian Waidelich

Hi Simon,

as mentioned in the Hangout this is not actually a bug (If I'm not completely wrong).
The reason is that the backend modules are a bit "special" when it comes to MVC:
All module requests go to the Backend controller of Neos. The actual module to be called is encoded in the "module" argument as you can see from the Module routes:

-
  name: 'Backend - Modules'
  uriPattern: 'neos/{module}'
  defaults:
    '@package':    'TYPO3.Neos'
    '@controller': 'Backend\Module'
    '@action':     'index'
    '@format':     'html'
  routeParts:
    module:
      handler: TYPO3\Neos\Routing\BackendModuleRoutePartHandler

So you're link should look something like:

<f:link.action package="TYPO3.Neos" controller="Backend\Backend" action="index" additionalArguments="{module: 'yourmodulename', controller: '\Your\ModuleController', action: 'index'}" class="btn neos-button">Content</f:link.action>

But the "right" way to do this is to use the link.module ViewHelper provided by Neos:

{namespace neos=TYPO3\Neos\ViewHelpers}
<neos:link.module path="yourmodulename" class="btn neos-button">Cancel</neos:link.module>

Also available in: Atom PDF