[TYPO3-mvc] Forwarding action without loosing request parameters

Thomas "Thasmo" Deinhamer thasmo at gmail.com
Sun Nov 1 21:28:44 CET 2009


That's all a bit weird.

I changed the method to 'redirect()', but now the following accours:

If I use method="post" in the <f:form> tag, it will redirect me to 
http://my-domain.tld//<title>.<id>.<type>.html?&tx_ext_plugin[action]=index&tx_ext_plugin[controller]=PluginController&cHash=<hash>

The weird is, that the two "//" won't be recognized by TYPO3 and the
homepage will be shown with no error-handling page defined in the 
install-tool. (Also 'index' as controller is wrong, but should be 
overwritten with the POST variable anyways.)

If I use method="get" in the <f:form> tag, the form action attribute of 
http://my-domain.tld/<title>.<id>.<type>.html?&tx_ext_plugin[action]=calculate&tx_ext_plugin[controller]=PluginController&cHash=<hash>
won't be used as the destination uri, further more ONLY the valuepairs 
which are in the form will be sent as querystring, which resulst in:
http://my-domain.tld//<title>.<id>.<type>.html?tx_ext_plugin[__referrer][extensionName]=ExtName&tx_ext_plugin[__referrer][controllerName]=PluginContro... 
which completely skips the dstination controller 'calculate' which was 
set in the action or the form.

I'm using Firefox 3.5.4.

Any ideas? Is this a bug?

Thanks!


Jochen Rau schrieb:
> Hi Thomas.
> 
>> The process looks like the following:
>> 1. Index action gets called, showing a form in index.html
>> 2. Form gets submitted with the action "calculate"
>> 3. Variable gets assigned, forwarding to index action
>> 4. {address} is not available in the view/template
>>
>> Is there a way to either forward the {address} to the index action,
>> or a way to use the same template/view for the calculate action also?
> 
> Maybe you would like to invoke redirect() instead of forward(). This 
> will persist your calculated address by finalizing the actual request 
> and sending a new one.
> 
> class MyController extends Tx_Extbase_MVC_Controller_ActionController {
> 
>     /**
>     * The main action
>     * @param string $newAddress
>     * @dontvalidate $newAddress
>     */
>     public function indexAction($newAddress = NULL) {
>       // Display Form
>     }
> 
>     /**
>     * The calculate action
>     *
>     * @param string $address
>     * @validate $address Alphanumeric
>     */
>     public function calculateAction($address) {
>         $this->view->assign('address', $address);
>         $this->redirect('index');
>     }
> }
> 
> The methods redirect() and forward() are defined in the ActionController 
> of Extbase.
> 
> Regards
> Jochen
> 
> 


More information about the TYPO3-project-typo3v4mvc mailing list