2016-12-14 2 views
1

Laravel 5.2와 함께 webapp을 개발하고 있지만 해결할 수없는 문제가 있습니다.Laravel Eloquent 컬렉션 속성

나는 웅변 모델을 확장하는 모델을 가지고 있지만 함께 출력에 내 데이터베이스 테이블을하려고 할 때 "여기서"그것은 같은이 순간에 나를 위해 많은 정보 유용하지로 컬렉션을 반환 예를

\App\MyModel::where('id_table', 23)->first(); 

에 대한 'guarded', 'keytype'... 그리고 내 테이블의 데이터는 '속성'에 있습니다. laravel의 가이드에 따라 나는 모두가 나를 좋아하는 곳에서 사용하고 $mytable->myvalue으로 출력하는 것을 본다. 그러나 이것은 물론 나를 위해 일할 수 없다.

다음

제가 이야기 컬렉션과 함께 스크린 샷 :

enter image description here

어떻게 내가 "::where()" 같은 것을 사용할 때 언제나 속성을받을 수 있나요?

나는 getAttributes()을 시도했지만 나에게 500 오류가 발생합니다.

답변

3

몇 가지 속성을 얻으려면 여러 가지 작업을 수행하십시오. 아마 첫 번째 방법이 최선이 될 것입니다 :

사용 pluck() :

\App\MyModel::where('id_table', 23)->pluck('id', 'name'); 

사용 select() :

\App\MyModel::select('id', 'name')->where('id_table', 23)->get(); 

사용 get() 매개 변수 :

\App\MyModel::where('id_table', 23)->get(['id', 'name']); 

당신이 원하는 경우 Eloquent 컬렉션을 얻은 다음 속성 단지와 배열, 당신은 toArray()를 사용할 수 있습니다

$collection = \App\MyModel::where('id_table', 23)->get(); 
$names = $collection->pluck('name'); 
+0

가 답장을 보내 주셔서 감사 :

\App\MyModel::where('id_table', 23)->get()->toArray(); 

당신이 새 컬렉션에 일부 특성을 얻을 컬렉션 pluck()를 사용하려면

! toArray() 메서드를 사용하여 내가 찾고있는 것이 더 많거나 적다. 그러나 select 및 get을 시도했으며 항상 'table', 'primaryKey', 'connection', 'keyType', 'perPage '(내 질문에 이미지를 추가했습니다). 그렇다면 get() 메소드와 같은 속성 만 사용하려면 어떻게해야합니까? –

+1

몇 가지 속성이 필요하다고 생각했습니다. 'get()'이 도움이되지 않는다면, 추가 객체 속성없이 모든 속성을 얻기 위해'-> get() -> toArray()'를 사용하십시오. –

+1

그래, 고마워. 네가 맞다고 생각해. –