Laravel Expulent: 필드 ID로 배열 키 반환
Laravel의 Expulent ORM을 통해 쿼리를 실행할 때 행 ID를 Array 결과 키로 가져오려면 ID를 기반으로 확인하거나(array_key_exists 사용) 검색을 수행해야 할 때(결과 배열에서 특정 항목이 필요한 경우) 작업을 쉽게 수행할 수 있습니다.
필드 ID에 키를 설정하도록 Expellent에게 알려줄 방법이 있습니까?
간단히 할 수 있습니다.
Model::all()->keyBy('category_id');
Expulent Collection(일반 클래스의 하위 클래스)이 있으므로 메소드를 사용할 수 있습니다.$collection->getDictionary()
에서는 기본 키로 키를 지정한 범주 개체 배열을 제공합니다.
네이티브 PHP 어레이가 아닌 다른 컬렉션을 원한다면 대신 다음을 사용할 수 있습니다.$collection->keyBy($property)
. 당신의 주된 열쇠는category_id
,그렇게$collection->keyBy('category_id')
. 이 메서드를 사용하여 작성한 get mutators를 포함하여 임의 속성으로 키를 지정할 수 있습니다.
하는 동안에getDictionary
웅변가 특유의 존재입니다.Collection
확장,keyBy
모든 라라벨이 이용할 수 있습니다.Collection
물건들.Laravel 4.2 API 문서 또는 Laravel 5.0 API 문서를 참조하십시오.
당신은.Support\Collection
/Database\Eloquent\Collection
방법을 사용하시면 됩니다.lists('id')
집합 내의 각 모형의 id 배열을 반환합니다.
그럼 사용.array_combine
키를 모델에 매핑할 수 있습니다.결과는 ID가 해당 모델에 매핑된 배열이 됩니다.
키로 id가 필요한 경우 Collection:
$collection = Model::all();
$collection->getDictionary();
// returns:
array(
1 => object(Model) ( ... ),
2 => object(Model) ( ... ),
...
idN => object(Model) ( ... )
);
그렇지 않으면 좋든 싫든 간에 다음을 수행할 수 있습니다.
$keys = $collection->lists('columnName');
$arrayOfModels = array_combine($keys, $collection->getDictionary);
pluck('label','id')
Laravel 5.8+에서 찾고 있는 것은 get() 출력입니다. 이 출력은 컬렉션을 제공하며, 준비가 완료된 상태입니다.toArray()
ed
예:
$options = \App\DataChoice::where([ 'field_id' => $dataField->id , 'active' => true ])->get()->pluck('label','id')->toArray();
저도 비슷한 문제가 있었습니다. PHP 배열을 사용하여 각 선택에 대해 의 값을 id auto increment 열로 만들고 표시되는 텍스트를 값으로 만들 수 있도록 하고 싶었습니다.
언급URL : https://stackoverflow.com/questions/26865877/laravel-eloquent-return-array-key-as-the-fields-id
'programing' 카테고리의 다른 글
Android에서 사용자 지정 서체 사용 (0) | 2023.10.08 |
---|---|
HTML5 캔버스 뷰포트의 너비 100% 높이? (0) | 2023.10.08 |
Spring Framework의 JdbcTemplate 클래스를 사용하여 INSERT 문을 실행하는 방법 (0) | 2023.10.08 |
cume_dist vs percent_rank 또는 차이 (0) | 2023.10.08 |
봄의 맥락에서 건강한 콩과 건강하지 않은 콩 (0) | 2023.10.08 |