我无法使用变量从数组中选择元素

时间:2019-09-26 08:08:10

标签: php database laravel

我需要您的帮助。我正在尝试从数组中提取一些值,但是我不能。

这是我的控制者:

$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。

3 个答案:

答案 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();

上次为我工作:)