viewのフォームに入力した値をControllerで判定し特定の条件に一致する場合に、
元のview(入力したフォーム)にインプットデータ付きかつ、エラーメッセージ($message)付きで返そうとしています。
ところが、以下の3パターンのいずれでもtopページへのリダイレクトとなります。
試しにwith、withInputを削っても同様です。
意図せず、リダイレクト先をオーバーライドするような書き方をしたのかと疑いもしましたが、見当もつかず・・・
どうすべきか、何が問題なのか教えていただきたいです。
パターン1 $previous=url()->previous(); return redirect($previous)->withInput()->with(['message'=>$message]); パターン2 return redirect()->action('UpdateController@show')->withInput()->with(['message'=>$message]); パターン3 return back()->WithInput()->with(['message'=>$message]);
当然ながら、$previousをddで見ても、期待したURLとなっていますが、実際にはtopへとリダイレクトされてしまう状況です。
なお、条件は入力値が検索してhitしない場合のみエラーとなるように書いています。
Routingは以下の通りです。
元はpostのみだったのですが、Redirectするにあたり、getとなってしまうため、以下のように変えました。
Route::match(['get','post'],'User/show', 'UpdateController@show');
クリックジャッキング対策として、以下middlewareを追加しています。
その他に、通常のMVC関連以外のファイルは作成していません。
class AddXFrameOptions { public function handle($request, Closure $next) { $response = $next($request); $response->headers->set('X-Frame-Options', 'deny'); return $response; } }
回答1件
あなたの回答
tips
プレビュー