때때로 foreach 태그의 공급에 배열이 포함되어 있지 않기 때문에 예외가 발생합니다.Laravel에서 좋은 연습 방법으로 정의되지 않은 변수와 배열을 처리하는 방법
좋아요; $array
실제로 배열되지 않기 때문에 (공통 if Something model doesn't contain any data
이다) Something::all() returns null
, foreach
는 예외를 발생
//controller
->with('array', Something::all());
//view
@foreach ($array as $k => $v)
{{ $v }}
@endforeach
경우는 NULL
이다.
나는이 예외를 막을 수있는 방법으로 예방할 수 있음을 알고 있습니다.
값이 설정되지 않은 경우 컨트롤러에서 선택하고 빈 배열을 누릅니다.
->with('array', Something::all() ?: array());
또는보기 파일에서도 마찬가지입니다.
@if(!empty($array))
@foreach ($array as $k => $v)
{{ $v }}
@endforeach
@endif
두 가지 모두 정상적으로 작동하지만 둘 다 Laravel에서 이것을 처리하는 가장 좋은 방법이 무엇인지 궁금합니다. 컨트롤러에서? 보기? 다른 곳? 완전히 다른 개념? 이 문제를 해결하기위한 최선의 방법을 배우고 싶습니다.
ps. 나는 Laravel 예제를 주었지만 Laravel이 아닌 응답도 환영합니다.
변수가 null 일 때 이미 예외가 발생합니다. 왜 똑같은 문제가 발생합니까? : p – Aristona