前提
当方mac OS Mojave10.14.2にてWebサイトを作成しております。
やりたいこと
サイトの利用者が文章をアップロードできる仕組みで、
アップロード画面→アップロード確認画面→アップロード完了画面
の遷移なのですが、
アップロード確認画面のurlに対して直アクセスした際、
下記の挙動をさせたいです。
1~3全て一般的な話かと存じますので、「普通はこうする」
といったものがあればご教示頂きたいです。
- ログイン済で、アップロード画面からアクセスした場合
→アップロード画面にて入力した内容を受け取り、表示
- ログイン済で、アップロード画面以外からアクセスした場合
→アップロード画面を表示
2. 未ログインで直接urlにアクセスした場合
→ログイン画面を表示し、ログインボタン押下後アップロード画面を表示
現状
下記のルーティングで、上記やりたいことはできているのですが、
2番(未ログインで直接urlにアクセスした場合)に、
アップロード確認画面のurl(upload_case_confirm)で、
アップロード画面が表示されるので、これでいいのかどうかが気になっています。
php
1Route::get('/upload_case', 'UploadcaseController@upload_case')->name('upload_case')->middleware('auth'); 2Route::get('/upload_case_confirm', 'UploadcaseController@upload_case')->middleware('auth'); 3Route::post('/upload_case_confirm', 'UploadcaseController@upload_case_confirm')->name('upload_case_confirm')->middleware('auth'); 4Route::post('/upload_case_done', 'UploadcaseController@upload_case_done')->name('upload_case_done')->middleware('auth');
また、非公式Laravel日本語版ドキュメント(https://readouble.com/laravel/5.5/ja/routing.html
)にて記載のあるmatchも下記のようにして試してみましたが、こちらの場合はコントローラー側で、
getの場合はアップロード画面を表示、postの場合はアップロード画面にて入力した内容を受け取り確認画面を表示
という処理の分岐を書かなければならないかと存じます。
そういった分岐をコントローラー側でどう行うのか、またそもそもコントローラー側で処理してよいのかどうか、
判断がついておりません。
php
1Route::get('/upload_case', 'UploadcaseController@upload_case')->name('upload_case')->middleware('auth'); 2Route::match(['get', 'post'], 'UploadcaseController@upload_case_confirm')->name('upload_case_confirm')->middleware('auth'); 3Route::post('/upload_case_done', 'UploadcaseController@upload_case_done')->name('upload_case_done')->middleware('auth'); 4
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。