Laravel - 以两列作为显示类型填充下拉列表

时间:2017-01-28 08:31:32

标签: laravel-5 collections

我正在使用pluck api获取两列并在视图中传递一个集合以生成一个下拉菜单。

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

工作正常,显示省'名称',使用id值。但我想显示两列,即name和total_population。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

不幸的是,Eloquent的pluck()方法不允许你这样做,但是你可以在执行普通查询后通过其他集合方法来解决这个问题。至少有两种方法可以实现这一目标:

仅限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})";
    });

我个人更喜欢后者,但你可以自由选择其中任何一个。 :)