2016-11-02 2 views
2

Laravelのコントローラにパラメータをリダイレクトし、2番目のコントローラでパラメータを取得しようとしています。Laravelのコントローラにパラメータをリダイレクトして、2番目のコントローラのパラメータを取得する

私は最初のコントローラで、以下のドキュメント、リンクに従って設定しています。

https://laravel.com/docs/5.3/redirects#redirecting-controller-actions

リダイレクト

return redirect()->action(
    'quote', ['enquiry' => $request->final_enquiry_id] 
); 

ルート

Route::post('/quote', [ 
    'as' => 'quote', 
    'uses' => '[email protected]' 
]); 

第コントローラ

public function quote(Request $request) 
    { 
    echo $enquiry; 

これは現在、未定義の変数を返します。

これを行うにはこれが最善の方法ですか、そうした場合はどこが間違っていますか?

答えて

3

あなたの第二のコントローラのようにする必要があります:

public function quote($enquiry, Request $request) 
{ 
    echo $enquiry; 

そして、あなたのルートのようにする必要があります:

Route::post('/quote/{enquiry}', [ 
    'as' => 'quote', 
    'uses' => '[email protected]' 
]); 

またはあなたのenquiry paramは、オプションになりたい場合は、あなたのようにそれを行うことができます。

public function quote($enquiry = null, Request $request) 
{ 
    echo $enquiry; 

あなたのルートは次のようになります:

Route::post('/quote/{enquiry?}', [ 
    'as' => 'quote', 
    'uses' => '[email protected]' 
]); 
+0

ありがとうございます。セキュリティとアクセスの理由から、セッションでデータを渡すことにしました。 –

関連する問題