2016-09-06 2 views
0

나는 typo3 v7.6.11에서 방문자가 택시를 요청할 수있는 확장 빌더를 사용하여 매우 간단한 확장을 작성했습니다.Typo3 frontend plugin 컨트롤러의 _POST 데이터를 사용하십시오.

모든 것이 작동하는데, 픽업 포인트와 드롭 오프 포인트를 요청하여 요청을 더욱 매력적으로 만들어야합니다 ... 요청은 템플릿의 실제 양식으로 이동합니다 (requestPid은 id입니다. 양식이있는 페이지)의 :

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

실제로 모델에서 아무것도 요구하지 않는 CONTROLER에서 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이 허용되는지 확실하지 않습니다. 어쩌면 함수와 유체 템플리트에서 작동하지 않는 경우 이름을 바꾸어야합니다.

+0

이것은 모든 행동에 인수를 전달하는 데 선호되고 권장되는 방법입니다. 이로 인해 매개 변수가 POST뿐만 아니라 GET의 URL 인수의 하위 범위에서 올바르게 분리됩니다. 거의 모든 경우에 컨트롤러의'$ this-> request-> getArguments()'에 접근하지 말아야한다. (왜 더 많은 설명이 필요하지만 근본적으로 그 인수는 검증되거나 변환되지 않는다.) 따라서 컨트롤러가 인수를 전달/수신 할 필요가있는 * 모든 단일 사례에서 : 컨트롤러에서 인수를 올바르게 선언하고 인수를 전달할 때 해당 이름을 사용하십시오. –

+0

'request'는 예약 된 인수 이름이 아니지만 명확성을 위해 DTO (데이터 전송 객체)의 이름으로 사용하지 않아야합니다. –

+0

필자는 newTicket을 변수로 사용했지만, 확실하게하기 위해 ... 어떻게 유체 템플릿에서'$ newTicket [ 'origin']'에 액세스합니까 ?? 변수가 접근 할 수있는 유일한 방법은'$ this-> view-> assign ('ticket', $ newTicket);'function formAction ...이지만 값이 없다는 것입니다 ... – webMan

0

빌더를 사용하여 확장을 만들었습니까? 가장 쉬운 방법은 빌더에서 필드 (픽업 포인트, 드롭 오프 포인트)를 작성한 다음 createAction 또는 newAction (빌더에서 호출하는 방법을 모르는 경우)을 작성하는 것입니다. 그것은 직접 액세스 할 수있는 방법이있는 <f:form...

붙여 넣기하면 복사/단지 수 createAction의 템플릿을 생성합니다 POST/당신이 깨끗한 extbase으로 그것을 만들 수 있습니다 때 직접 사용하는 사용하지 않는 것이 좋습니다 (매개 변수를 GET 방법) :

$myVar = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('myVar'); 
+0

thx 4 intrest : 예 빌더와 함께했지만 그 종류의 크로스 오버, 나는 두 개의 필드 (픽업 포인트, 드롭 오프 포인트)가있는이 작은 폼과이 두 개로 시작하는 완전한 폼을 가지고 있습니다. 또 다른 8 또는 10을 가지고 있습니다 ... – webMan

+0

저는이 두 가지가 완전한 형태로 transprorted되기를 원합니다. 거기에 등록 될 것입니다 ... – webMan

관련 문제