나는 Eloquent ORM laravel 5.1을 사용하고 있으며, 0보다 큰 ID 배열을 반환하고 싶습니다 test
.
나는 시도했다 :
$test=test::select('id')->where('id' ,'>' ,0)->get()->toarray();
반환 :
Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) )
하지만 결과가 다음과 같은 간단한 배열에 있기를 원합니다.
Array ( 1,2 )
답변
다음을 사용할 수 있습니다 lists()
.
test::where('id' ,'>' ,0)->lists('id')->toArray();
참고 : 더 나은 당신이 당신의 모델을 정의하는 경우 Studly Case
예를 들어, 형식 Test
.
다음을 사용할 수도 있습니다 get()
.
test::where('id' ,'>' ,0)->get('id');
업데이트 : (버전> = 5.2)
그만큼 lists()
메서드는 새 버전에서 더 이상 사용되지 않습니다>= 5.2
. 이제 pluck()
대신 메서드를 사용할 수 있습니다 .
test::where('id' ,'>' ,0)->pluck('id')->toArray();
참고 : 예를 들어 블레이드 에서 문자열
이 필요한 경우 과 같이 toArray () 부분 없이 함수를 사용할 수 있습니다 .
test::where('id' ,'>' ,0)->pluck('id');
답변
에서 Collection
할 수있는 또 다른 방법은 다음과 같습니다.
$collection->pluck('id')->toArray()
whereIn()
예를 들어 laravel이 쿼리 에서 완벽하게 사용할 수있는 인덱스 배열을 반환 합니다.
답변
이에 대한 정답은 방법입니다 lists
. 다음과 같이 매우 간단합니다.
$test=test::select('id')->where('id' ,'>' ,0)->lists('id');
문안 인사!
답변
all()
method 대신 method를 사용할 수 있습니다 toArray()
(더보기 : laravel documentation ) :
test::where('id' ,'>' ,0)->pluck('id')->all(); //returns array
필요한 경우 첨부 파일 string
없이 사용할 수 있습니다 toArray()
.
test::where('id' ,'>' ,0)->pluck('id'); //returns string
답변
목록 () 메서드에 대해 읽어보십시오.
$test=test::select('id')->where('id' ,'>' ,0)->lists('id')->toArray()
답변
다음을 사용하는 경우 추가 정보 DB
:
DB::table('test')->where('id', '>', 0)->pluck('id')->toArray();
Eloquent 모델을 사용하는 경우 :
test::where('id', '>', 0)->lists('id')->toArray();
답변
답변을 표시했지만 이것은 훨씬 더 간단한 접근 방식입니다.
App\User::pluck('id')->toArray()