【发布时间】:2018-11-10 15:50:45
【问题描述】:
以下方法旨在返回一个包含另一个数组'data' 和一个对象(一些雄辩查询的结果)的数组。
然而,它返回一个包含两个对象的数组; $data 以某种方式被转换为具有多个子对象的对象,而不是对象数组。需要注意的是,return 语句之前的dd($data) 表明它确实是一个对象数组。我认为处理响应的 Laravel 中间件以某种方式将其作为对象返回...
知道如何解决这个问题吗?
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)];
}
【问题讨论】:
-
转换为具有多个子对象的对象,有点含糊,能否附上
dd结果和预期结果?
标签: laravel laravel-5.4