如何将此集合转换为Laravel 5.2中的数组

问题描述 投票:0回答:1

我已将我的应用程序从Laravel 4.2升级到5.2。控制器中的这一行抓住了一个目录列表:

 $directories = DirectoryModel::lists('name', 'id');

然后我将它压缩到刀片上以生成刀片中的下拉菜单:

 return view('citations.createBlank', compact('citation'), compact('directories'));

在刀片中,我使用Form集合生成下拉菜单,如下所示:

Form::select('directory_id', [null=>'Please Select'] + $directories, $citation->directory_id, ['id'=>'directory','class'=>'form-control input-sm js-basic-single','required'])

在Laravel 4.2中,$目录是刀片中的一个数组。现在在5.2中它是一个Collection(对象),并且刀片抛出一个错误:类Illuminate \ Support \ Collection的对象无法转换为int。

如何将其转换为Controller中的数组?或者我是否需要重写刀片以不同方式生成下拉?

collections laravel-5.2
1个回答
1
投票

你需要使用->toArray()方法:

$directories = DirectoryModel::lists('name', 'id')->toArray();

顺便说说:

Collection,query builder和Eloquent查询构建器对象上的lists方法已重命名为pluck。方法签名保持不变。

所以你最好使用pluck而不是lists,它已被弃用:

$directories = DirectoryModel::pluck('name', 'id')->toArray();

Upgrade Guide

© www.soinside.com 2019 - 2024. All rights reserved.