2017-08-28 302 views
1

提交表單後,在一個控制器動作,我需要在新標籤中打開PDF,然後重定向到另一個頁面。如果我這樣做:重定向重定向CakePHP3

$this->redirect(['action' => 'view', $sale->id, '_ext' => 'pdf']); 
return $this->redirect(['action' => 'add']); 

我只得到pdf,但沒有重定向到「添加」動作。

我怎樣才能獲得PDF格式,這是在URL ... /瀏覽/ saleid.pdf然後去添加操作?

編輯

加控制器動作

return $this->redirect(['action' => 'add', $sale->id]); 

再在添加控制器動作,在頂部

public function add($saleId = null) 
{ 
    if(isset($saleId)) 
    $this->redirect(['action' => 'view', $saleId, '_ext' => 'pdf']); 
    ... 
} 

回答

3

你只得到PDF文件,因爲你」重新導向它。重定向後,執行停止,所以下一個重定向不會被執行。

此,通過瀏覽器限制,不能做到:在應用程序已經發出了「下載這個」頭到瀏覽器,這樣你就可以在任何地方將用戶重定向。你可以做的是首先重定向到最終頁面,然後從那裏開始下載。

+0

這是一個好主意,去到第二頁,然後再開始下載,我嘗試它,仍然得到同樣的錯誤。我得到pdf,但我沒有重定向。 – Josecanalla

+0

你最近怎麼樣?如果刪除PDF下載標題,會發生什麼情況?是否會轉到您想要的頁面?請記住,您現在需要在結果頁面的控制器操作中處理下載。 – ishegg

+0

我編輯了我的問題。如果我刪除重定向到pdf下載,我去我想要的頁面。所以問題在於重定向。 – Josecanalla