속성 [title]이 (가)이 컬렉션 인스턴스에 없습니다.
PHP속성 [title]이 (가)이 컬렉션 인스턴스에 없습니다.
Laracast의 비디오를 따르고 있습니다 : 기본 모델 / 컨트롤러 / 워크 플로우보기.
나는 테이블에 연락처 정보를 가지고있다.
CREATE TABLE `about` (
`id` int(10) UNSIGNED NOT NULL,
`title` varchar(500) COLLATE utf8_unicode_ci NOT NULL,
`content` text COLLATE utf8_unicode_ci,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
컨트롤러 파일에서 다음 코드를 사용하여 데이터를 전달하려고합니다.
public function index()
{
$about = Page::where('page', 'about-me')->get(); //id = 3
return view('about', compact('about'));
}
아래에 표시된 코드를 표시하려고하면
@section('title')
{{$about->title}}
@stop
@section('content')
{!! $about->content !!}
@stop
나는 다음과 같은 오류 메시지를 받는다.
그러나 컨트롤러 파일에서 검색 방법을 변경하면 작동합니다.
public function index()
{
$about = Page::find(3);
return view('about', compact('about'));
}
첫 번째 경우 (dd ($ about)를 사용할 때 (where -> get ()) 데이터는 배열로 캡슐화됩니다. 두 번째 경우 (find (3))에는 예상대로 데이터가 표시됩니다.
내가 도대체 뭘 잘못하고있는 겁니까?
해결법
-
==============================
1.get ()을 사용할 때 컬렉션을 얻습니다. 이 경우 속성을 가져 오기 위해 반복해야합니다.
get ()을 사용할 때 컬렉션을 얻습니다. 이 경우 속성을 가져 오기 위해 반복해야합니다.
@foreach ($collection as $object) {{ $object->title }} @endforeach
아니면 인덱스에 의해 객체 중 하나를 얻을 수 있습니다.
{{ $collection[0]->title }}
또는 컬렉션에서 첫 번째 객체 가져 오기 :
{{ $collection->first() }}
find () 또는 first ()를 사용할 때 객체를 얻으면 간단하게 속성을 얻을 수 있습니다.
{{ $object->title }}
-
==============================
2.get () 메서드를 사용하면 컬렉션 (쿼리와 일치하는 모든 데이터)을 얻고 first ()를 대신 사용하려고하면 다음과 같이 하나의 요소 만 반환합니다.
get () 메서드를 사용하면 컬렉션 (쿼리와 일치하는 모든 데이터)을 얻고 first ()를 대신 사용하려고하면 다음과 같이 하나의 요소 만 반환합니다.
$about = Page::where('page', 'about-me')->first();
from https://stackoverflow.com/questions/41366092/property-title-does-not-exist-on-this-collection-instance by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
mysql 데이터베이스에서 내 BLOB 이미지를 표시하려면 PHP 페이지가 필요합니다. (0) | 2018.09.18 |
---|---|
Mcrypt를 OpenSSL로 대체하십시오. (0) | 2018.09.18 |
PHP 메일 ()을 통해 보낸 메일이 스팸 메일을 보내지 않도록하려면 어떻게합니까? (0) | 2018.09.18 |
정의되지 않은 오프셋 PHP 오류 (0) | 2018.09.18 |
print_r로 인쇄 된 배열의 출력으로부터 어떻게 배열을 만드나요? (0) | 2018.09.18 |