2017-11-20 27 views
0

フロントエンドにVueを持つLaravelアプリがあり、VueはPUTリクエストを使用してコントローラから更新メソッドを呼び出します。更新後のLaravelリダイレクトはPUTリクエストを使用します

リクエストは機能しますが、モデルは更新されますが、GETではなくPUTとしてリダイレクトされるため、リダイレクトに関する問題がありますか?

public function update(MomentsValidationRequest $request, Project $project, Task $task, Moment $moment) 
{ 
    foreach($request->materials as $material){ 
     $material_id_array[$material['id']] = ['quantity' => $material['quantity']]; 
    } 

    $moment->update($request->all()); 

    if(isset($material_id_array)) 
     $moment->materials()->sync($material_id_array); 

    return redirect()->back()->with(['alert-type' => 'success', 'message' => 'Moment updated!']); 
} 

だから当然、私はそれだけで、以前のビューを取得することになっているルートにリダイレクトされているため、例外を許可しない方法を取得しています。

ルート自体は問題ありませんが、リクエスト方法はありません。非信者のために

:)

enter image description here

もルート:

enter image description here

+0

コントローラ内ではなく、[ルート]内でリダイレクトを定義しようとしましたか? – cchoe1

+0

新しいLaravelの 'Route :: redirect()'を使って、どういう意味ですか? – Norgul

+0

コントローラーが終了した後にそれらをリダイレクトしたいだけですか?ここで指定されたコントローラに要求を送信するルートが定義されています。このコントローラ内でリダイレクトを定義する代わりに、 'back()'メソッドをルート自体の戻り値として定義することができます。ここでは、「リダイレクトの作成」の下にあるhttps://laravel.com/docs/5.5/redirectsの例を示します。 – cchoe1

答えて

0

いいえ、リダイレクトはGETで常に作られていますが、そのような経路が定義されていません。したがって、これで何かをするGETルートを作成する必要があります。

GETルートにリダイレクトするだけで済みます。

+0

これは本当ですか? https://laravel.com/docs/5.5/redirectsには、POSTリクエストでリダイレクトを使用する例が示されています。技術的には 'redirect()'メソッドではありませんが、ユーザを前のページに戻すことで同じことをします。 – cchoe1

+1

POSTリクエスト内で実行されますが、GET経由でアクセス可能なルートにリダイレクトされます。リダイレクトは常にGET経由で利用できるルートに作られています –

+0

私の編集をチェックしてください – Norgul

関連する問題