2017-12-26 10 views

答えて

0
$service_list = Service::all()->toArray(); 

all()collectionを返します選択します。 collectiontoArray()のメソッドをサポートします

+0

私は、これは2次元配列ではなく、連想配列を作成すると思います。 – Barmar

1

を使用してコレクションを配列に変換し、array_combine()を使用してそれから連想配列を作成します。

$service_list = Service::all()->toArray(); 
$services = array_combine(array_column($service_list, 'id'), array_column($service_list, 'name')); 
3

ないあなたは、アレイ方式で構築されたPHPSを使用する必要がありますが、我々はクエリビルダとコレクションクラスにpluckを持っている理由を確認してください。

$services = Service::pluck('name', 'id'); 
// $services->all(); // for the actual array contained 

これは、クエリでnameidを選択して、あなただけnameフィールドを含むidをキーコレクションを提供します。

$services = Service::all(); 
$services_array = $services->pluck('name', 'id')->all(); 

すでにモデルのあなたのコレクションを持っている場合(上記のコードは、結果とすべてのフィールドおよび水和モデルを照会している)、それが持っていたとして、あなたが少なく、効率的なのに(同じ結果を達成するためにコレクションにpluckを使用することができますその後、すべてのフィールドのクエリ、水和物モデル、それらからそれらの2つのフィールドを引く)

Laravel 5.5 Docs - Query Builder - Retrieving Results

Laravel 5.5 Docs - Collections - pluck method

関連する問題