Плагин внешнего интерфейса Typo3, используйте данные _POST в контроллере

Я написал очень простое расширение в typo3 v7.6.11 со сборщиком расширений, где посетитель может попросить поездку на такси.

все работает, только то, что мне нужно сделать запрос более привлекательным, задав точку сбора и точку высадки... этот запрос переходит в фактическую форму, подобную этой в шаблоне (requestPid идентификатор страницы с формой):

<f:form pageUid="{settings.additional.requestPid}" action="form" name="request" object="{Request}">
  <f:render partial="Ticket/RequestNewFields" />
  <f:form.submit value="{f:translate(key: 'tx_wmnltickets_domain_model_ticket.admin.continue')}" />
</f:form>

но formAction в контроллере фактически ничего не запрашивает у модели (getArguments() Я старался);

/**
 * action form
 * 
 * @return void
 */
public function formAction() {
    $this->request->getArguments();
}

запрос отправляет $_POST но я не вижу способа получить это в форме... если вы хотите увидеть больше кода для понимания, просто спросите, я не знаю, что вы будете искать...

2 ответа

Решение

Ваше действие формы должно иметь параметр запроса от вашей формы:

/**
 * action form
 * 
 * @param array $request
 *
 * @return void
 */
 public function formAction($request) {
 }

Тогда вы можете получить доступ к данным с $request['origin']

Я не уверен, что переменная $request допускается в качестве аргумента. Может быть, вы должны переименовать его в функции и в шаблоне, если он не работает.

Вы создали расширение со сборщиком? Самый простой способ - создать поля (точка захвата, точка вылета) в компоновщике, а затем создать createAction или же newAction (не уверен, как это называется у застройщика). Это создаст шаблон для createAction где вы можете просто скопировать / вставить <f:form...

Существует способ прямого доступа к параметрам POST/GET (не рекомендуется использовать его напрямую, если вы можете сделать это с помощью чистого extbase):

$myVar = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('myVar');
Другие вопросы по тегам