2015-02-04 122 views
1

嘗試構建一個控制器方法,可以重定向併發送請求數據。控制器/路由重定向似乎沒有任何東西可以實現這一點。鋰重定向發送請求數據

This question gave a new approach但我無法弄清楚如何重定向到指定的頁面,而不是在當前渲染。

$forward = Libraries::instance("controllers", "Main", [ 
    'request' => $this->request 
]); 
return $forward($this->request, ['action' => 'view']); 

The route tests似乎沒有任何提供任何見解,我該怎麼去實現URL重定向,同時仍保留要求的數據?

+0

當你說重定向...你的意思是一個實際的瀏覽器重定向,你想保留查詢字符串上的數據?例如,請求會進入http://example.com/some/url?a=1&b=2,並且您希望將其重定向到http://example.com/another/url?a=1&b=2? – rmarscher

+0

瀏覽器重定向,但我想保留'$ this-> request-> data'和'request-> query'。所以轉發當前的請求數據到另一頁 – Bankzilla

+1

是的,這是爲了做一個內部重定向。 HTTP規範沒有提供使用POST數據重定向的機制(因此,POST-Redirect-GET模式)。但是,如果目標頁面不需要相同的請求上下文以正確呈現,則仍然可以執行'$ forward()'調用和_then_'返回$ this-> redirect(...)'。 –

回答

0

從控制器內:

$this->redirect(['AnotherController::anotherAction', '?' => $this->request->query], ['exit' => true]); 

$this->request->data不能被轉發。瀏覽器位置重定向只能指定查詢字符串。您可以使用包含輸入html元素中的數據的表單來呈現頁面,並在加載時提交表單。或者您可以將數據存儲在會話或某個服務器端,並在下一個請求中檢索它。

+0

Dam我希望避免創建Feed並提交 – Bankzilla

+0

結束時使用會話保存請求數據的重定向。 – Bankzilla