我需要您的帮助。我正在尝试从数组中提取一些值,但是我不能。
这是我的控制者:
$initiated = \App\Invitation::where('inviter_id', Sentinel::getUser()->id)->get();
这是我的观点:
{{$initiated['id']}} // undefined index error
如果我尝试使用{{$initiated->id}}
,则我具有未定义的属性:Illuminate \ Database \ Eloquent \ Collection :: $ id
这是我的数组:
[{"id":578,"inviter_id":"545","target_id":"542","timestamp":"0","accepted":"1","read":"0"},{"id":606,"inviter_id":"504","target_id":"542","timestamp":"0","accepted":"1","read":"0"},{"id":608,"inviter_id":"548","target_id":"542","timestamp":"0","accepted":"1","read":"0"},{"id":613,"inviter_id":"553","target_id":"542","timestamp":"0","accepted":"1","read":"0"}]
所以,我需要从中选择所有ID。
答案 0 :(得分:2)
通过此查询,您将检索一个集合,而一个集合是一个可迭代的对象,因此,在您看来,您必须对其进行迭代才能获得集合中每个模型的id
。
<!-- In your view -->
@foreach($initiated as $record)
{{ $record->id }}
@endforeach
如果仅需要获取ID,请使用pluck
method
$initiated = \App\Invitation::where('inviter_id', Sentinel::getUser()->id)->pluck('id);
我使用了对象表示法,因为该集合充满了Invitation
个对象。但是,由于每个模型都可以转换为数组,因此数组表示法($record['id']
)也可以正常工作。
答案 1 :(得分:1)
get()
方法返回一个集合,而不是单个记录。使用first()
而不是get()
方法来获得所需的结果。
答案 2 :(得分:0)
尝试同时添加get()
和first()
$initiated = \App\Invitation::where('inviter_id', Sentinel::getUser()->id)->get()->first();
上次为我工作:)