2017-01-28 5 views
2

pluck apiを使用して2つの列を取得し、ビューにドロップダウンメニューを作成するためのコレクションを渡します。Laravel - 表示タイプとして2列のドロップダウンを設定する

Province::pluck('name', 'id'); 

正常に動作し、州名が表示され、idが使用されます。しかし、私は2つの列、すなわちnameとtotal_populationを表示したい。

どうすればいいですか?

答えて

0

残念ながら、Eloquentのpluck()メソッドではそれはできませんが、通常のクエリを実行した後で他のコレクションメソッドを使用してこれにアプローチすることができます。これを達成するには、少なくとも2通りの方法があります。mapWithKeys()のみ

$provinces = Province::all(['id', 'name', 'total_population']) 
    ->mapWithKeys(function ($province) { 
     return [$province->id => "{$province->name} ({$province->total_population})"]; 
    }); 

keyBy() + map()

$provinces = Province::all(['id', 'name', 'total_population']) 
    ->keyBy('id') 
    ->map(function ($province) { 
     return "{$province->name} ({$province->total_population})"; 
    }); 

で、私は個人的には後者を好むが、あなたはどちらかを選ぶことは自由です。 :)

関連する問題