如何绕过Undefined offset:1 - Laravel 5.2

时间:2016-05-14 01:37:18

标签: php json laravel

我现在正在开发一个API,而且我必须得到一个玩家最后一场比赛得分。通常每场比赛都有ATLEAST 2队或更多。但是我遇到了一个播放列表,整场比赛只有一支球队。

我正在呼吁两队的得分如下:

        // Get the Score AND Team ID of First team
        $Warzonescore = $warzoneLastMatch->TeamStats[0]->Score;
        $WarzonescoreTeamId = $warzoneLastMatch->TeamStats[0]->TeamId;


        // Get the Score AND Team ID of Second team
        $Warzonescore2 = $warzoneLastMatch->TeamStats[1]->Score;
        $Warzonescore2TeamId = $warzoneLastMatch->TeamStats[1]->TeamId;

我的问题是,在一些比赛中,只有一支球队,如果我加载一个球员的玩家,如果那个人只与一种球队比赛(所有球员都在同一支球队),那么给了我这个错误:

  

未定义的偏移量:1

因为该玩家不存在TeamStats [1]。

如何绕过该API调用并检查该值是否为空,或者是否存在?

我尝试将其插入(if else)语句中,并使用( - > exists(),=== null,!= 0,!="")

1 个答案:

答案 0 :(得分:1)

TeamStats

上进行简单循环时,以这种方式对您的访问者方法进行硬编码是没有意义的
$Warzonescores = [];
foreach($warzoneLastMatch->TeamStats as $idx => $stats){
    $Warzonescores[$idx]['Score'] = $stats->Score;
    $warzonescores[$idx]['TeamId'] = $stats->TeamId
}

这似乎是一种更有效,更干净的方法。由于它是一个API,您现在可以对数据进行简单而安全的返回

return response()->json($Warzonescores);