Laravel 试图从API获取json中非对象的属性
我正在使用Discord API让Discord公会的成员显示10个随机用户,并使用Laravel 试图从API获取json中非对象的属性,laravel,api,controller,laravel-blade,Laravel,Api,Controller,Laravel Blade,我正在使用Discord API让Discord公会的成员显示10个随机用户,并使用foreach方法将其显示在blade视图中 我从API中获取JSON,获取其成员数组,并将其加密为只返回10个成员,以便将其从控制器发送到视图 问题是,当我想解析它并使用数组的一个元素(avatar\u url)时,它不起作用,我收到了这个错误消息:试图获取非对象的属性“avatar\u url” 这是我的控制器 class IndexController extends Controller { .
foreach
方法将其显示在blade视图中
我从API中获取JSON,获取其成员数组,并将其加密为只返回10个成员,以便将其从控制器发送到视图
问题是,当我想解析它并使用数组的一个元素(avatar\u url
)时,它不起作用,我收到了这个错误消息:试图获取非对象的属性“avatar\u url”
这是我的控制器
class IndexController extends Controller {
...
/**
* Function to get 10 random players on fivem
* @return array
*/
private function getServerPlayers() {
$request = file_get_contents('https://discordapp.com/api/guilds/683766194884575355/widget.json');
$decoded = json_decode($request, true)['members'];
return array_slice($decoded, 0, 10);
}
/**
* Return index view
* @return Factory|View
*/
public function index() {
return view('index')->with('players', $this->getServerPlayers())->with('clients', $this->getServerClients())->with('members', $this->getDiscordMembers());
}
}
这是我的看法
<div class="row">
<div class="col-lg-12">
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-all-bets" role="tabpanel"
aria-labelledby="pills-all-bets-tab">
<div class="responsive-table">
<table class="table">
<thead>
<tr>
<th scope="col">Nom du joueur</th>
<th scope="col">Statut</th>
</tr>
</thead>
<tbody>
@foreach($players as $player)
<tr>
<td><img src="{{ $player->avatar_url }}">{{ $player->username }}</td>
<td>En ligne</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
化名
身材
@foreach($player作为$player)
头像{u url}}>{{$player->username}
依林
@endforeach
我认为这个问题有点愚蠢,但我被它挡住了,我需要一些帮助
谢谢。问题是
json\u decode
返回一个数组而不是一个对象
可以使用以下命令将参数传递给视图:
return view('index',[
'players' => $this->getServerPlayers(),
'clients' => $this->getServerClients(),
'members' => $this->getDiscordMembers(),
]);
然后使用以下命令在视图中显示它们:
<img src="{{ $player['avatar_url'] }}">{{ $player['username'] }}
{{$player['username']}
您应该像这样使用化身url
:
<td><img src="{{ $player['avatar_url'] }}">{{ $player['username'] }}</td>
{{$player['username']}
因为传递给视图的是数组,而不是对象