LoginSignup
5
4

More than 3 years have passed since last update.

Missing required parameter for [×××] の解決方法

Posted at

Laravel初学者です。
オリジナルアプリを作成しているのでその過程を記事にしています。

理解が曖昧なところも多いため、ご指摘等ありましたらご連絡いただければ幸いです。

今回は
Missing required parameter for [×××]
が出たのでその解決方法を記録として残します。

環境

Version
PHP 7.4.14
Laravel 8.24.0
mysql 8.0.23
docker 20.10.2
docker-compose 1.27.4

エラー発生

データの一覧表示の「詳細」ボタンから詳細画面に遷移する実装を行った際にエラーがおきました。

app/Http/Controllers/GameController.php
public function show($id)
    {
        $game = Game::find($id);
        return view('game.show', compact('game'));
    }

上記がコントローラーの記述です。
showアクションで$game = Game::find($id);でidから引っ張ってきたデータを$gameに入れています。
そしてreturn view('game.show', compact('game'));viewに変数を渡して詳細画面を開くというアクションです。

resources/views/game/index.blade.php
<div class="table-responsive">
    <table class="table table-hover">
      <thead>
        <tr>
          <th>ボードゲーム名</th>
          <th>プレイ時間</th>
          <th>最小プレイ人数</th>
          <th>最大プレイ人数</th>
          <th>画像</th>
          <th>詳細</th>
        </tr>
      </thead>
      <tbody id="tb1">
      @foreach($games as $game)
      @if($game->image_path)
        <tr>
          <td>{{ $game->name }}</td>
          <td>{{ $game->play_time }}</td>
          <td>{{ $game->players_minimum }}</td>
          <td>{{ $game->players_max }}</td>
          <td><img src="{{ $game->image_path }}"></td>
          <td class="text-nowrap">
            <p><a href="{{ route('game.show') }}" class="btn btn-primary btn-sm">詳細</a></p>
          </td>
        </tr>
      @endif
      @endforeach
      </tbody>
    </table>
  </div>

上記が一覧表示画面のviewです。
<a href="{{ route('game.show') }}" class="btn btn-primary btn-sm">詳細</a>の記述で詳細画面に遷移しようとしています。

ここで下記のエラーが発生しました。

スクリーンショット 2021-02-08 0.30.11.png

解決方法

こちらの記事を参考にさせていただきました。
ありがとうございます!

URLに入れるパラメーターが渡せていないことが原因

とのことです。

resources/views/game/index.blade.php
<a href="{{ route('game.show', $game->id) }}" class="btn btn-primary btn-sm">詳細</a>

上記のようにパラメーターを渡してあげることで解決しました。

以上です。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4