我通过此代码解决了这个问题
$service_list = Service::all();
$services = [];
foreach ($service_list as $item){
$services[$item['id']] = $item['name'];
}
但是如何使用php_array函数呢? 它用于下拉选择
答案 0 :(得分:3)
不确定为什么必须使用内置数组方法的PHP,但我们在Query Builder和Collection类上有pluck
。
$services = Service::pluck('name', 'id');
// $services->all(); // for the actual array contained
这只会在查询中选择name
和id
,并为您提供一个仅包含id
字段的name
键入的收藏。
$services = Service::all();
$services_array = $services->pluck('name', 'id')->all();
如果你已经拥有了你的模型集合(上面的代码已经针对每个字段和带有结果的水合模型进行查询),你可以在集合上使用pluck
来获得相同的结果(尽管效率不高)查询所有字段,水合模型,然后从中提取这两个字段)
答案 1 :(得分:1)
使用toArray()
将集合转换为数组,然后使用array_combine()
从中创建关联数组。
$service_list = Service::all()->toArray();
$services = array_combine(array_column($service_list, 'id'), array_column($service_list, 'name'));
答案 2 :(得分:0)
$service_list = Service::all()->toArray();
all()
将返回collection
。 collection
支持toArray()
方法