eloquent를 사용하여 laravel 5.2에서 하나의 차원 배열로 하나의 열만 얻는 방법은 무엇입니까?
나는 시도했다 :
$array = Word_relation::select('word_two')->where('word_one', $word_id)->get()->toArray();
그러나 이것은 다음과 같은 2 차원 배열로 제공합니다.
array(2) {
[0]=>
array(1) {
["word_one"]=>
int(2)
}
[1]=>
array(1) {
["word_one"]=>
int(3)
}
}
하지만 다음과 같이 얻고 싶습니다.
array(2) {
[0]=>2
[1]=>3
}
답변
다음 pluck
방법을 사용할 수 있습니다 .
Word_relation::where('word_one', $word_id)->pluck('word_two')->toArray();
컬렉션과 함께 사용할 수있는 메서드에 대한 자세한 내용은 Laravel 문서를 참조하십시오 .
답변
답변
다음과 같이 간단히 수행 할 수 있습니다.
Model::pluck('column')
여기서 model은 모델과 같은 User
모델 및 열 이름과 같은 열입니다.id
만약 당신이
User::pluck('id') // [1,2,3, ...]
& 물론 where
뽑기 전에 절과 같은 다른 절을 가질 수 있습니다.
답변
나는이 질문을 보았고 웅변 빌더 객체의 list () 메소드가 Laravel 5.2에서 감가 상각되었고 pluck ()으로 대체되었음을 명확히 할 것이라고 생각했습니다.
// <= Laravel 5.1
Word_relation::where('word_one', $word_id)->lists('word_one')->toArray();
// >= Laravel 5.2
Word_relation::where('word_one', $word_id)->pluck('word_one')->toArray();
이러한 메서드는 예를 들어 컬렉션에서 호출 할 수도 있습니다.
// <= Laravel 5.1
$collection = Word_relation::where('word_one', $word_id)->get();
$array = $collection->lists('word_one');
// >= Laravel 5.2
$collection = Word_relation::where('word_one', $word_id)->get();
$array = $collection->pluck('word_one');
답변
아래 코드를 사용하여 얻을 수 있다고 생각합니다.
Model::get(['ColumnName'])->toArray();