Missing required parameter for [×××]에 대한 해결 방법

Laravel 초학자입니다.
오리지널 앱을 작성하고 있으므로 그 과정을 기사로 하고 있습니다.

이해가 모호한 곳도 많기 때문에, 지적 등 있으면 연락 주시면 감사하겠습니다.

이번에는Missing required parameter for [×××]가 나왔으므로 그 해결 방법을 기록으로 남깁니다.

환경





버전


PHP
7.4.14

라라벨
8.24.0

mysql
8.0.23

도커
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> 의 설명으로 상세 화면으로 천이하려고 하고 있습니다.

여기서 다음 오류가 발생했습니다.



해결 방법



여기 의 기사를 참고로 했습니다.
감사합니다!

URL에 넣을 매개 변수를 전달할 수 없기 때문에

라는 것입니다.

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

위와 같이 매개 변수를 전달하여 해결했습니다.

이상입니다.

좋은 웹페이지 즐겨찾기