いつもお世話になっております。
現在、Laravelにてスマホ用のユーザ認証ありのwebページを制作しております。
スマホ用ですので、他のデバイスからのアクセスに対しては「スマホを使用してください」と書かれたページへ飛ばしたいと思っております。
以下、コードによってtopページだけ実装できました。
(個人で試した限りできていそうですが、もしおかしな点ありましたらご指摘下さい)
しかしログイン画面を同じようにコーディングしたとしても例えばログインしていないユーザがurlを直接、編集してログインしていないと入れないページへアクセスした場合、loginページへ飛ばされます。
スマホの場合だとそのままlogin画面を表示するのでいいですが、PCから同様の操作をした場合、「Route [login] not defined.」とエラーが表示されてしまいます。
どうすればうまくルーティングできるか、知恵をお借りできないでしょうか?
なお下記、コード以外のやり方でも構いません。
php
1//web.php 2 3Auth::routes(); 4Route::get('/', function () { 5 return redirect('/top'); 6 }); 7 //top画面 8Route::get('/top', function(){ 9 $ua = $_SERVER['HTTP_USER_AGENT']; 10 // user agent が iPhone か iPod か Android の場合 11 if( (strpos($ua,'iPhone') !== false) || (strpos($ua,'Android') !== false) || (strpos($ua,'iPad') !== false)) { 12 return view('top'); 13 } 14 else { // user agent が それ以外 (PC) の場合 15 return view('guide'); // PC版TOPを表示 16 } 17}); 18 19//ログイン画面 20Route::get('/login', function(){ 21 $ua = $_SERVER['HTTP_USER_AGENT']; 22 // user agent が iPhone か iPod か Android の場合 23 if( (strpos($ua,'iPhone') !== false) || (strpos($ua,'Android') !== false) || (strpos($ua,'iPad') !== false)) { 24 Auth::routes(['verify' => true]); 25 } 26 else { // user agent が それ以外 (PC) の場合 27 return view('guide'); // PC版TOPを表示 28 } 29});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/26 08:35 編集
退会済みユーザー
2019/09/26 11:25 編集
2019/09/26 17:04 編集
退会済みユーザー
2019/09/26 18:31 編集