2017-08-06 81 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

相關問題