実現したいこと
ここに実現したいことを箇条書きで書いてください。
- Laravelを使用して選手詳細画面にダイレクトアクセスされた際は選手一覧画面に遷移するようにする。
前提
ここに質問の内容を詳しく書いてください。
(例)
Laravelを使用した選手一覧の画面を作成しており、選手一覧の詳細画面に直接アクセスした場合は選手一覧の画面に移動させたいのですが、以下の方法を試してもうまくいきません。まだLaravelの知識が浅く、ところどころ理解が及んでいない可能性があるため、もしよろしければ、どうすればダイレクトアクセスした際に遷移させるのか教えていただけないでしょうか。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
PlayersController.php public function show($id){ $player = Player::find($id); if (is_null($player)){ return redirect(route('index')); } return view('players.detail', ['player' => $player]); } web.php Route::get('/', [PlayersController::class, 'index'])->name('index'); 選手一覧画面 Route::get('/show/{id}', [PlayersController::class, 'show'])->name('players.detail'); 詳細画面 detail.blade.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> 選手詳細</title> <link rel="stylesheet" type="text/css" href="/css/base.css"> </head> <body class=del> <h1>■選手データ</h1> <table> <tr> <td>No</td> <td>{{ $player->id }}</td> </tr> <tr> <td>背番号</td> <td>{{ $player->uniform_num }}</td> </tr> <tr> <td>ポジション</td> <td>{{ $player->position }}</td> </tr> <tr> <td>所属</td> <td>{{ $player->club }}</td> </tr> <tr> <td>名前</td> <td>{{ $player->name }}</td> </tr> <tr> <td>誕生日</td> <td>{{ $player->birth }}</td> </tr> <tr> <td>身長</td> <td>{{ $player->height }}</td> </tr> <tr> <td>体重</td> <td>{{ $player->weight }}</td> </tr> </table> <p class="top-back"><a href="route('index')" >戻る</a><p> </body> </html>
試したこと
web.phpに
Route::get('/show/{id}', function () {return redirect(route('index'));});を追加
。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> 以下の方法を試してもうまくいきません。
「うまくいきません」とは具体的にどういう状態なのか? エラーが出るのか、それとも意図した挙動にならないのか? エラーが出てるならエラーメッセージなどを質問文に追記してください。意図した挙動にならないのなら、もう少し詳細に現状の挙動を含めて説明してください。「ダイレクトアクセス禁止」を目指してるようですが、であれば第三者から見るとソースコードの意味がよく分かりません(試したことのソースコードをみるに、そんな処理を入れたらどうやっても詳細画面にアクセスできない気がしますが)。質問文を追記・編集していただき、第三者にも伝わる内容にするといいと思います。
ご指摘ありがとうございます。
うまくいかないというのは、試したソースコードを入力した際にかえって詳細画面にアクセスができなくなってしまいました。
ソースコードの記載に関しては後日再度編集いたします。

回答1件
あなたの回答
tips
プレビュー