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

时间:2019-04-10 18:02:59

标签: collections laravel-5.2

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

ClientAliveInterval

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

void*

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

std::is_pointer

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

如何在Controller中将其转换为数组?还是我需要重写刀片以生成不同的下拉列表?

1 个答案:

答案 0 :(得分:1)

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

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

顺便说一句:

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

因此,最好不要使用pluck而不是lists,因为它已被弃用:

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

Upgrade Guide