TYPO3 Extbase-如何从外部调用控制器动作

时间:2019-01-09 20:57:53

标签: php typo3 extbase

假设我有一个名为my_extension的扩展名,在my_extension中有一个名为apiResponse的插件。

然后我的控制器中有一个名为sendApiDataAction的函数。

如何通过常规的http GET请求从外部调用此sendApiDataAction

2 个答案:

答案 0 :(得分:2)

首先,您需要从扩展程序中获取以下信息:

  • extensionKey(这很简单,在您的示例中为myExtension
  • pluginName(这是您在分配操作的ext_localconf.php中定义的名称)
  • actionName(在您的示例中为sendApiData-没有action
  • controllerName(您的操作所在的控制器)
  • pageId(这是实现插件的页面ID)
  • 命名空间(这是根据您的插件和扩展名构建的名称,在您的情况下为tx_myextension_{pluginName}

然后,您可以通过

访问操作

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

答案 1 :(得分:0)

我假设您使用相同的扩展名来调用外部插件。您可以使用Fluid 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)Using Form:如果您要提交表单,则您具有该表单的配置以调用操作。

<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>

希望这对您有所帮助!