以前こちらの質問を投稿したものです。
https://teratail.com/questions/51435
おかげさまで、問い合わせページのviewを表示することに成功しました。ありがとうございます。
表示することができたのはいいものの、入力フォームの値が正しくRequestに通っておらず、次の画面に遷移することができなくて困っています。
組み込み前の、通常のLaravelのディレクトリ配置の時は以下の記述で正しく動作しておりました。
routes/web.php
php
1Route::resource('/', 'ContactController', ['only' => ['index', 'store']]); 2 3Route::get('/confirm', function () { 4 return view('contact.confirm'); 5}); 6 7Route::get('/complete', function () { 8 return view('contact.complete'); 9}); 10 11Route::post('/complete','ContactController@complete');
view contact/index.blade.php
html+php
1{{ Form::open(['url' => '/', 'method' => 'post']) }} 2{{ csrf_field() }} 3{{ Form::text('name', null, ['id' => 'name']) }} 4{{ Form::submit('確認する') }} 5{{ Form::close() }}
controller app/Http/Controllers/ContactController.php
php
1class ContactController extends Controller 2{ 3 public function index(){ 4 return view('contact.index'); 5 } 6 7 public function store(Request $request){ 8 $validator = Validator::make($request->all(), [ 9 'name' => 'required|string', 10 ]); 11 12 if ($validator->fails()) { 13 return redirect() ->back() ->withErrors($validator) ->withInput(); 14 } 15 else { 16 $data = $request -> all(); 17 $request -> session() -> put($data); 18 19 return view('contact.confirm', compact("data")); 20 } 21 } 22 23 public function confirm(Request $request){ 24 $data = $request -> all(); 25 $request -> session() -> put($data); 26 27 return view('contact.confirm', compact("data")); 28 } 29 30 public function complete(Request $request){ 31 $data = session() -> all(); 32 33 return view('contact.complete'); 34 } 35}
indexページで入力フォームに情報を入力すると、storeメソッドにrequestした値がPOSTされて、
confirmメソッドで一度確認画面を挟んだ後、completeメソッドで完了画面を表示するイメージです。
シンボリックリンクを外してからフォームに値を入力すると、正しく完了画面まで遷移しますし、バリデーションエラーも正しくキャッチできています。
しかし、シンボリックリンクをつけると正しく値を入力して送信ボタンを押してもindexページに戻り、何もいれなくてもエラーも表示されません。
何から手を付ければいいのか。。皆様今一度お力をお貸し願えますでしょうか。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。