2017-08-28 10 views
1

コントローラアクションでフォームを送信した後、新しいタブでpdfを開き、別のページにリダイレクトする必要があります。私がこれを行う場合:別のリダイレクト後リダイレクトCakePHP3

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

私はpdfを取得しますが、「追加」アクションにはリダイレクトしません。

URL .../view/saleid.pdfにあるpdfを入手して、追加アクションに行く方法はありますか?追加コントローラのアクション追加コントローラのアクションで再度

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

EDIT、なぜならあなたの」トップ

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

答えて

3

であなたが唯一のPDFファイルを取得していますそれにリダイレクトします。リダイレクション後、実行は停止されるので、次のリダイレクトは実行されません。

これはブラウザの制限によって実行できません。アプリはすでにブラウザに「ダウンロード」ヘッダーを送信しているため、どこにでもユーザーをリダイレクトできません。あなたができることは、最初にエンドページにリダイレクトし、そこからダウンロードを開始することです。

+0

2番目のページに移動してからダウンロードを開始すると良いですが、試しても同じエラーが発生します。私はpdfを取得しますが、私はリダイレクトされません。 – Josecanalla

+0

どうやってやっていますか? PDFのダウンロードヘッダーを削除すると、それはあなたが望むページに移動しますか?結果ページのコントローラアクションで今ダウンロードを処理する必要があることを覚えておいてください。 – ishegg

+0

私は自分の質問を編集しました。私がpdfへのリダイレクトのダウンロードを取り除くと、私は自分が望むページに行きます。したがって、問題はリダイレクトにあります。 – Josecanalla

関連する問題