이 컬렉션 인스턴스에 [title] 속성이 없습니다.
나는 Laracasts의 비디오를보고 있습니다 : 기본 모델 / 컨트롤러 / 워크 플로보기 .
연락처 정보를 담은 테이블이 있습니다.
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
다음과 같은 오류가 발생합니다.
이 컬렉션 인스턴스에 [title] 속성이 없습니다. (보기 : E : \ laragon \ www \ newsite \ resources \ views \ about.blade.php)
그러나 컨트롤러 파일에서 검색 방법을 변경하면 작동합니다.
public function index()
{
$about = Page::find(3);
return view('about', compact('about'));
}
I 사용할 때 dd($about)
첫 번째 경우에 ( where()->get()
)를 데이터 어레이에 의해 캡슐화된다. 두 번째 경우 ( find(3)
) 예상대로 데이터를 표시합니다.
내가 도대체 뭘 잘못하고있는 겁니까?
사용할 때 컬렉션get()
을 사용할 수 있습니다 . 이 경우 속성을 가져 오기 위해 반복해야합니다.
@foreach ($collection as $object)
{{ $object->title }}
@endforeach
또는 상상으로 만들 중 하나를 얻을 수 있습니다.
{{ $collection[0]->title }}
또는 컬렉션에서 첫 번째 개체를 가져옵니다.
{{ $collection->first() }}
사용 find()
하거나 object-first()
를 얻을 때 다음 과 같이 간단하게 속성을 얻을 수 있습니다.
{{ $object->title }}
get()
메서드를 사용하면 컬렉션 (쿼리와 일치하는 모든 데이터)을 first()
가져오고 대신 사용합니다 . 다음과 같이 하나의 요소 만 반환합니다.
$about = Page::where('page', 'about-me')->first();
Controller에서 Collection 키워드를 사용합니다. 여기처럼 ..
public function ApiView(){
return User::collection(Profile::all());
}
여기서 사용자는 리소스 이름이고 프로필은 모델 이름입니다. 감사합니다.
$about = DB::where('page', 'about-me')->first();
대신 get()
.
내 프로젝트에서 작동합니다 . 감사합니다.
$about->first()->id
또는 $stm->first()->title
문제가 해결되었습니다.
'ProgramingTip' 카테고리의 다른 글
Django csrf 토큰 + Angularjs (0) | 2020.11.19 |
---|---|
pandas 데이터 프레임 그룹 별 datetime 월 (0) | 2020.11.19 |
.NET 코어 MVC 컨트롤러의 단위 테스트를 위해 HttpContext를 모의 포장합니까? (0) | 2020.11.19 |
Python 라이브러리 경로 (0) | 2020.11.19 |
SQL : 하나의 열에 null 값이있을 때 3 개의 열을 더 많이? (0) | 2020.11.19 |