2017-08-06 29 views
1

以下方法旨在返回一个数组与另一个数组,'data'和一个对象(一些雄辩的查询的结果)。Laravel 5.4作为数组返回不是对象

然而,它返回一个数组中有两个对象; $ data以某种方式被转换为具有多个子对象的对象,而不是一个对象数组。应该注意的是,在return语句之前的dd($data)显示它确实是一个对象数组。我认为,不知何故,处理响应的Laravel中间件将此作为对象返回...

任何想法如何解决此问题? excuting回报判决之前或在它

public function getTestData($id) { 
    $participants = Participant::where('test_id', $id)->with('testRecords')->get(); 
    $finalRecordValue = TestRecord::where('test_id', $id)->orderBy('created_at', 'desc')->first(); 

    $data = []; 

    foreach ($participants as $participant) { 
     foreach ($participant->testRecords as $testRecord) { 
      if (!array_key_exists((int)$testRecord->capture_timestamp, $data)) { 
       $data[$testRecord->capture_timestamp] = (object)[ 
        'category' => $testRecord->capture_timestamp, 
        'value' . "_" . $participant->id => $testRecord->score 
       ]; 
      } else { 
       $data[$testRecord->capture_timestamp]->{"value" . "_" . $participant->id} = $testRecord->score; 
      } 
     } 
    } 

    return [$data, Auth::user()->tests()->findOrFail($id)]; 
} 
+0

**转换成多个子对象**,它有点含糊,你能附上'dd'结果确定目标和预期的结果? –

回答

1

试试这个:

array_values($data); 
+0

这样做 - 谢谢! – mdobrenko

相关问题