我正在尝试显示数组中每个事件的键。
这是var_dump
PAMI\Message\ResponseResponseMessage (object) [Object ID #374][9 properties]
events: (array) [29 elements]
0: PAMI\Message\EventPeerEntryEvent (object) [Object ID #381][6 properties]
rawContent:protected: (string) Event: PeerEntry
ActionID: 1517499612.3137
Channeltype: SIP
ObjectName: 100
ChanObjectType: peer
IPaddress: -none-
IPport: 0
Dynamic: yes
AutoForcerport: no
Forcerport: yes
AutoComedia: no
Comedia: yes
VideoSupport: no
TextSupport: no
ACL: yes
Status: UNKNOWN
RealtimeDevice: no
Description:
channelVariables:protected: (array) [1 element]
default: (array) [0 elements]
lines: (array) [0 elements]
variables: (array) [0 elements]
keys: (array) [18 elements]
event: (string) PeerEntry
actionid: (string) 1517499612.3137
channeltype: (string) SIP
objectname: (string) 100
chanobjecttype: (string) peer
ipaddress: (string) -none-
ipport: (string) 0
dynamic: (string) yes
autoforcerport: (string) no
forcerport: (string) yes
autocomedia: (string) no
comedia: (string) yes
videosupport: (string) no
textsupport: (string) no
acl: (string) yes
status: (string) UNKNOWN
realtimedevice: (string) no
description: (string)
createdDate: (integer) 1517499612
1: etc........
2: etc........
这是我的blade.php
@foreach($data->events as $peer)
<tr>
<td>{{ $peer->keys->ipaddress }}</td>
<td></td>
<td></td>
</tr>
@endforeach
我一直收到错误
&#34;试图获得非对象的属性&#34;
我知道这个错误意味着什么,但我不知道我做错了什么。
如果我只是在$ peer上执行var_dump,我可以看到所有键,但我无法访问它们。
任何帮助将不胜感激!
编辑** 所以我做了一个像这样的var_dump
@foreach($data->events as $peer)
<tr>
<td>
@if($peer->keys)
{{ var_dump($peer->keys) }}
@endif
</td>
<td></td>
<td></td>
</tr>
@endforeach
这是dd的输出 https://pastebin.com/0Wv4nehp
现在的问题是,我只能使用&#34; event&#34;或&#34; actionid&#34; {{$ peer-&gt; keys [&#34; event&#34;]}}
如果我尝试在该数组中使用其他任何东西...... {{$ peer-&gt; keys [&#34; status&#34;]}}
我明白了 未定义的索引:状态
我在这里不知所措。
答案 0 :(得分:2)
使用[]
访问用于访问对象属性的数组元素而不是->
。
@foreach($data->events as $peer)
<tr>
<td>{{ $peer->keys["ipaddress"] }}</td>
<td></td>
<td></td>
</tr>
@endforeach
如果有任何遗漏元素的可能性,那么你可以这样做 -
@foreach($data->events as $peer)
<tr>
@foreach($peer->keys as $key=>$value)
<td>{{ $value }}</td>
@endforeach
</tr>
@endforeach
答案 1 :(得分:0)
尝试使用
@foreach($data->events as $peer)
<tr>
<td>
@if($peer->keys)
{{ $peer->keys->ipaddress }}
@endif
</td>
<td></td>
<td></td>
</tr>
@endforeach
答案 2 :(得分:0)
在您的示例中,我看到每个事件都有很多键 您正在尝试显示每个事件的所有事件和所有键
@foreach($data->events as $peer)
<tr>
<td>
@foreach($peer->keys as $key)
{{ $key->ipaddress }} ,
@endforeach
</td>
<td></td>
<td></td>
</tr>
@endforeach
此代码应显示以逗号分隔的所有事件和IP地址