You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.5如何从Illuminate集合对象中提取ID?

Laravel 5.5 中从 Collection 提取分类 ID 的正确方式

嘿,我来帮你捋清楚这个问题~你踩坑的核心原因是**$categories是一个 Eloquent Collection(集合)对象,而非单个 Category 模型实例**,所以直接用$categories->id或者$categories->category->id肯定拿不到值。

先明确你的数据结构

你给出的集合里,items数组只包含一个App\Category对象,根据这个场景,给你几种正确的提取方式:

1. 当集合只有一个分类时,直接取单个模型的 ID

用first()方法从集合中取出第一个(也是唯一一个)分类模型,再访问它的id属性:

{{ $categories->first()->id }}

2. 遍历集合处理多个分类(通用场景)

如果之后集合可能包含多个分类,用@foreach循环遍历每个模型,再获取对应 ID:

@foreach($categories as $category)
    分类ID:{{ $category->id }}
@endforeach

3. 一次性提取所有分类 ID

如果需要批量获取所有分类的 ID,可以用pluck()方法,它会返回一个包含所有id值的集合,还能进一步处理:

{{-- 把所有ID用逗号拼接输出 --}}
{{ $categories->pluck('id')->implode(', ') }}

{{-- 或者先拿到ID集合,后续按需使用 --}}
@php
    $categoryIds = $categories->pluck('id');
@endphp

为啥之前的写法没用?

  • {{$categories->id}}:$categories是集合对象,它本身没有id属性,id是集合里每个Category模型的专属属性。
  • {{$categories->category->id}}:集合对象根本不存在category这个属性,自然取不到对应值。

内容的提问来源于stack exchange,提问作者fightstarr20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:43:21