Laravel Eloquent:返回数组键作为字段 ID

2022-08-30 09:22:35

当我通过Laravel的Eloquent ORM执行查询时,我想获取行ID作为数组结果键,当我想根据ID检查某些内容(使用array_key_exists)或进行一些查找(如果我需要来自结果数组的特定条目)时,这将使事情变得更容易

有没有办法告诉Eloquent为字段ID设置键?see image


答案 1

你可以简单地做

Model::all()->keyBy('category_id');

干杯:)


答案 2

由于您有一个 Eloquent Collection(泛型 Collection类),因此可以使用 getDictionary 方法。 将为您提供一个由主键化的 Category 对象数组。$collection->getDictionary()

如果您想要另一个集合而不是本机PHP数组,则可以改用 。看起来您的主键是 ,所以 .您可以使用该方法通过任意属性进行键控,包括您可能编写的任何 get 赋值函数。$collection->keyBy($property)category_id$collection->keyBy('category_id')

虽然是雄辩扩展所独有的,但可用于所有Laravel对象。请参阅 Laravel 4.2 API 文档Laravel 5.0 API 文档getDictionaryCollectionkeyByCollection


推荐