I’m having an issue when adding/pushing new key value to the result data, it return Indirect modification of overloaded element of AppMatch.
$results[$key][‘competitors’][1]->teamScore = $results[$key][‘competitors’][0]->scoreString;
Model Match method
JavaScript
x
public static function getTeamWinLossRecord($competitionId, $teamId) {
$data = [];
$results = self::select(['roundNumber', 'competitors'])
->where('competitionId', $competitionId)
->orderBy('roundNumber', 'desc')
->get()
->map(function($item){
$item['roundNumber'] = $item->roundNumber;
$item['competitors'] = json_decode($item->competitors);
return $item;
});
foreach ($results as $key => $matchArr) {
if( $matchArr['competitors'][0]->competitorId == $teamId || $matchArr['competitors'][1]->competitorId == $teamId){
if($matchArr['competitors'][0]->competitorId == $teamId){
$results[$key]['competitors'][1]->teamScore = $results[$key]['competitors'][0]->scoreString;
array_push($data, ['Rnd '.$matchArr['roundNumber'], $results[$key]['competitors'][1]]);
}
else{
array_push($data, ['Rnd '.$matchArr['roundNumber'], $results[$key]['competitors'][0]]);
}
}
}
dd($data);
}
Advertisement
Answer
Replace array push like this,
JavaScript
$data[] = array('Rnd '.$matchArr['roundNumber'], $results[$key]['competitors'][1]]);