2017-02-18 12 views
0

私はAssetControllerというコントローラに更新アクションを持っています。私は更新アクションに投稿するとき、私はRoute::resource('asset', 'AssetController');更新後のLaravelリダイレクト

を持って、私は私のルートでreturn \Redirect::route('asset.edit', array($id));

を行うアクションの終わりに

は、それが「/資産/ 8」(8のIDであることを私にとりその資産レコード)。私はそれを "/ asset/8/edit"に行きます。つまり、単に更新のために提出した編集フォームにユーザーを戻すだけです。

私もreturn \Redirect::back()を試しましたが、それは "/ asset/8"にも送信されました。ちょうど "/ asset/8/edit"でした。

なぜこれが機能しないのですか?

答えて

0

あなたは、私が問題を発見したキー

return \Redirect::route('asset.edit', array('id' => $id)); 

https://laravel.com/docs/5.4/responses#redirecting-named-routes

+0

おかげで、私はあなたが右だったら、これは事を変更しません。 Laravelはidとして渡された単一のパラメータを解釈します。 (私はあなたの提案を確かめるために試してみましたが、行っていません) – circle1

0

を渡す必要があります。私のリターンはDB :: transaction()内にあり、それを無視していました。

DB :: transaction()関数の外に置くと元のreturn文が正常に機能します。

0

このようなあなたの客引きを登録します。

Route::resource('asset', 'AssetController', ['names' => [ 'edit' => 'asset.edit ]]); 

、あなたのリダイレクトを使用します。

\Redirect::route('asset.edit', array($id)); 
+0

それは必要ではありません - それは私のコードにあったようにうまく動作します。私のエラーは、リダイレクトがdb:transaction()関数内で起こっていたことでした。一度それを関数の外に置くと、コードを変更することなく機能しました。 – circle1

関連する問題