Collection(목록)을 가져오시는 경우인듯 한데
그런경우를 위해 라라벨이 친절하게 아래와 같은 태그를 지원합니다
@forelse ($posts as $post) <li>{{ $post->title }}</li> @empty <p>포스트가 없습니다</p> @endforelse
아 잘못봤네요. 목록을 조회하시는게 아니군요...
위 함수부터 수정하시면 일반 if문으로 걸러집니다
지금처럼 조회하시면 collection목록으로 받아와지기 때문에 항상 if가 true 이구요
$post = \App\Post::where('id',$id)→get();
이렇게 쓰셔야 있으면 model, 없으면 null이 리턴되서 if문에 걸립니다
$post = \App\Post::find($id);
https://laravel.kr/docs/5.6/eloquent#retrieving-single-models
find 말고 get 를 쓰면서 null이 걸리는 방법은 없을까요 ??
그러면 컬렉션의 isNotEmpty()를 쓰시면 됩니다
@if($post->isNotEmpty()) 글이 있음 @else 글이 없음 @endif
감사합니다 !! 정말 도움이 많이 됬습니다
empty 와 isset 사용방법을 다시 공부 추천해 드리며 object 로 나온다면 object 상세하게 찍어보시는게 좋은 방법입니다 말씀하시는 내용은 함수의 쓰임을 예제로 잘 공부해 보시면 알 수 있습니다
참고 https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/
controller에서
$post = \App\Post::where('id',$id)→get();
return view('메인')→with('post',$post);
이런식으로 블레이드에 전달한뒤에
@if($post)
글이 있음
@else
글이 없음
@endif
이렇게 표현하고자 하는데
$post 변수에 값이 없는데도 불구하고
글이 있음 이 나타나고있습니다
empty 은 그반대로 나오고 isset (array) (object) 등등 해봤지만 제가 뜻하는대로 표시되지않아서 질문드려요 ,,
초보적인 질문이지만 어떤 부분을 공부해야지 파악이 될까요 ㅠㅠ?
var_dump 로 찍어보면 object로 나옵니다 조언좀 부탁드려요