ErrorException Undefined variable: ×××의 해결 방법
오리지널 앱을 작성하고 있으므로 그 과정을 기사로 하고 있습니다.
이해가 모호한 곳도 많기 때문에, 지적 등 있으면 연락 주시면 감사하겠습니다.
이번에는
ErrorException Undefined variable: ×××
가 나왔으므로 그 해결 방법을 기록으로 남깁니다.환경
버전
PHP
7.4.14
라라벨
8.24.0
mysql
8.0.23
도커
20.10.2
docker-compose
1.27.4
오류가 발생한 흐름
게시 데이터를 DB에서 가져와 목록으로 만들고 싶습니다.
index 액션과 foreach로 표시시키는 구현을 하고 있었습니다.
resources/views/game/index.blade.php
@foreach($games as $game)
@if($game->image_path)
<div class="game-lists">
<img src="{{ $game->image_path }}">
</div>
@endif
@endforeach
위가 view의 설명입니다.
foreach에서
$games
에서 하나씩 $game
로 꺼내 표시합니다.app/Http/Controllers/GameController.php
public function index()
{
$games = Game::all();
return view('game.index');
}
위는 컨트롤러 설명입니다.
Game 모델에서 all로 모든 데이터를 꺼내 $games에 넣고 있습니다.
이 상태에서 index를 표시하면
ErrorException Undefined variable: ×××
오류가 발생했습니다.Undefined
는 未定義のデータですよ
라는 의미라고 생각했습니다만컨트롤러에서
$games
로 정의를 하고 있을 것이므로 어떤 것인지 몰랐습니다.해결 방법
여기 의 기사를 참고로 했습니다.
감사합니다!
view에 데이터를 전달할 때는
return view('welcome', compact('tasks'));
위와 같이
compact
로 변수명을 건네줄 필요가 있는 것 같습니다.공부가 되었습니다.
그래서
app/Http/Controllers/GameController.php
public function index()
{
$games = Game::all();
return view('game.index', compact('games'));
}
위와 같이 편집하여 표시할 수 있었습니다.
이상입니다.
Reference
이 문제에 관하여(ErrorException Undefined variable: ×××의 해결 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mumucochimu/items/71ece26ff1a17299879a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)