TYPO3 Extbase - Как вызвать действие контроллера из внешнего - PullRequest
0 голосов
/ 09 января 2019

Допустим, у меня есть расширение с именем my_extension, а в my_extension есть плагин с именем apiResponse.

Тогда в моем контроллере есть функция с именем sendApiDataAction.

Как я могу вызвать это sendApiDataAction с внешнего устройства через обычный запрос HTTP GET?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Во-первых, вам нужна эта информация из вашего добавочного номера:

  • extensionKey (это просто, в вашем примере это myExtension)
  • pluginName (это имя, которое вы определили в ext_localconf.php, где вы назначаете действия)
  • actionName (в вашем примере sendApiData - без action)
  • controllerName (это контроллер, в котором находится ваше действие)
  • pageId (это идентификатор страницы, где реализован ваш плагин)
  • namespace (это имя, созданное из вашего плагина и вашего расширения, в вашем случае tx_myextension_{pluginName}

Затем вы можете получить доступ к действию по

http(s)://your.domain.tld/index.php?id={pageId}&{namespace}[controller]={controllerName}&{namespace}[action]={actionName}

0 голосов
/ 10 января 2019

Я предполагаю, что вы используете то же расширение для вызова внешнего плагина. Вы можете использовать жидкость Viewhelper создать URL для вызова действия контроллера.

1) Если вы хотите использовать URL для вызова действия, используйте ниже Uri / ActionViewHelper .

<f:uri.action action="NULL" arguments="{foo: 'bar'}" controller="NULL" extensionName="NULL" pluginName="NULL" pageUid="123" pageType="123" noCache="1" noCacheHash="1" section="''" format="''" linkAccessRestrictedPages="1" additionalParams="{foo: 'bar'}" absolute="1" addQueryString="1" argumentsToBeExcludedFromQueryString="{foo: 'bar'}" addQueryStringMethod="NULL">
</f:uri.action>

Вы можете использовать встроенную запись.

    {f:uri.action(action: 'NULL', arguments: {foo: 'bar'}, controller: 'NULL', extensionName: 'NULL', pluginName: 'NULL', pageUid: 123, pageType: 123, noCache: 1, noCacheHash: 1, section: '''', format: '''', linkAccessRestrictedPages: 1, additionalParams: {foo: 'bar'}, absolute: 1, addQueryString: 1, argumentsToBeExcludedFromQueryString: {foo: 'bar'}, addQueryStringMethod: 'NULL')}

2) Использование формы : если вы отправляете форму, у вас есть конфигурация для вызова формы действия.

<f:form additionalAttributes="{foo: 'bar'}" data="{foo: 'bar'}" action="NULL" arguments="{foo: 'bar'}" controller="NULL" extensionName="NULL" pluginName="NULL" pageUid="123" object="[mixed]" pageType="123" noCache="1" noCacheHash="1" section="''" format="''" additionalParams="{foo: 'bar'}" absolute="1" addQueryString="1" argumentsToBeExcludedFromQueryString="{foo: 'bar'}" fieldNamePrefix="NULL" actionUri="NULL" objectName="NULL" hiddenFieldClassName="NULL" enctype="NULL" method="NULL" name="NULL" onreset="NULL" onsubmit="NULL" class="NULL" dir="NULL" id="NULL" lang="NULL" style="NULL" title="NULL" accesskey="NULL" tabindex="123" onclick="NULL">
</f:form>

Надеюсь, это поможет вам!

...