Як мені передати аргумент контролеру з включеним потоком, щоб він був розпізнаний дією контролера?
Я створив розширення за допомогою builder і додав наступний метод до ContentController.
/**
* @param string $var
*/
public function exampleAction($var = null) {
var_dump($var);
die;
}
Але як би я не додав параметр до URL, я отримую лише "null" в результаті.
Каталог розширень - "тест", і так $_EXTKEY
. Будівельник поставив "Mac.Test" в ext_tables.php
для дзвінків до реєстраціїProviderExtensionKey (). Отже, в URL-адресі я спробував такі параметри:
http://host/index.php?id=1&tx_test_content[var]=abc
http://host/index.php?id=1&tx_test[var]=abc
http://host/index.php?id=1&tx_mactest_content[var]=abc
http://host/index.php?id=1&tx_mactest[var]=abc
http://host/index.php?id=1&var=abc
та деякі інші. Але безрезультатно.
Я спробував з f:link.action
ViewHelper, в результаті чого
http://localhost/test2/index.php?id=1&no_cache=1&tx_test_content[member]=foo&tx_test_content[action]=example&tx_test_content[controller]=Content
Також $ this-> request-> getArguments () повертає лише порожній масив, тому має бути щось серйозно не так.
Використані версії:
PHP 5.6.11
TYPO3 6.2.21
vhs 2.4.0
флюс 7.2.3
рідинні сторінки 3.3.1
текучий вміст 4.3.3
fluidcontent_core 1.3.0
builder 1.0.0
Нічого іншого не встановлено (свіжа система лише для тестування такої поведінки).
Відповіді:
2 для відповіді № 1Використовуючи рідинне посилання, ви можете передавати подібні параметри
<f:link.action action="example" controller="controllerName" arguments="{var:"abc"}">Go</f:link.action>
Створіть посилання на зразок:
http://host/index.php?id=1&tx_[extension_key]_[fe_plugin_key][var]=abc
Тепер, як отримати параметр з URL в extBase
$arguments = $this->request->getArguments(); // OR
$var = $this->request->getArgument("var");
Корисні посилання: