Laravel \ Lumen получает параметр загрузки eager и отправляет другому пользователю eager loading - PullRequest
1 голос
/ 20 мая 2019

Lumen v 5.7

У меня есть ответ json, подобный этому

{
    "data": {
        "id": 172,
        "name": "Group Test",
        "groupmates": [
            {
                "id": 4555,
                "name": "Andri Josua",
                "peer_reviews": [
                    {
                        "id": 509,
                        "peer_review_period_id": 17,
                        "peer_review_setting_id": 15,
                        "peer_review_setting_item_id": 72,
                        "student_id": 4555,
                        "peer_review_setting": {
                            "id": 15,
                            "criteria": "Partisipasi",
                            "partner_id": 6,
                            "created_at": "2017-07-05T06:44:12.000Z",
                            "updated_at": "2018-11-28T04:12:37.000Z",
                            "peer_review_setting_items": [
                                {
                                    "id": 71,
                                    "peer_review_setting_id": 15,
                                    "partner_id": 6,
                                    "remarks": "Sangat Tidak Baik",
                                    "grade": "0",
                                    "description": "Anggota kelompok,\r\n• tidak berpartisipasi dalam tugas kelompok.\r\n\r\n",
                                    "order_number": 1,
                                    "created_at": "2017-07-05T06:44:12.000Z",
                                    "updated_at": "2017-07-05T06:44:12.000Z"
                                },
                                {
                                    "id": 72,
                                    "peer_review_setting_id": 15,
                                    "partner_id": 6,
                                    "remarks": "Tidak Baik",
                                    "grade": "40",
                                    "description": "Anggota kelompok,\r\n • jarang berpartisipasi, • waktu terbuang, atau • mengerjakan materi yang tidak terkait.",
                                    "order_number": 2,
                                    "created_at": "2017-07-05T06:44:12.000Z",
                                    "updated_at": "2017-07-05T06:44:12.000Z"
                                },
                            ]
                        }
                    }
                ]
            }    
        ]  
    }
}

, и контроллер, подобный этому

public function csu($studentId, $klassId, $csuId)
{
    $student = Student::findOrFail($studentId);

    $contentSectionUnit = ContentSectionUnit::findOrFail($csuId);

    $prPeriod = $contentSectionUnit->peer_review_periods->first();

    $group = ClassGroup::me($student)
        ->with(['class_group_students' => function ($query) use ($studentId, $prPeriod) {
            $query->with(['peer_reviews' => function ($query) use ($studentId, $prPeriod) {
                $query->with(['peer_review_setting' => function ($query) {
                    $query->with('peer_review_setting_items');
                }])
                ->where('peer_review_period_id', $prPeriod->id)
                ->where('student_reviewer_id', $studentId)
                ->orderBy('peer_review_setting_id', 'asc');
            }])
            ->where('student_id', '!=', $studentId)
            ->orderBy('student_id', 'asc');
        }])
        ->whereKlassId($klassId)
        ->first();

    return new PeerReviewContentResource($group);
}

Я хочу добавить новый атрибут checked вpeer_review_setting_items, какое значение атрибута получается из проверки where peer_review_setting_item_id == peer_review_setting_items->id.

Как отправить атрибут peer_review_setting_item_id при peer_review в peer_review_setting_items отношение?

Ожидаемый результат похож наэто

...

"peer_review_setting_items": [
    {
        "id": 71,
        "peer_review_setting_id": 15,
        "partner_id": 6,
        "remarks": "Sangat Tidak Baik",
        "grade": "0",
        "description": "Anggota kelompok,\r\n• tidak berpartisipasi dalam tugas kelompok.\r\n\r\n",
        "order_number": 1,
        "created_at": "2017-07-05T06:44:12.000Z",
        "updated_at": "2017-07-05T06:44:12.000Z",
        "checked": false
    },
    {
        "id": 72,
        "peer_review_setting_id": 15,
        "partner_id": 6,
        "remarks": "Tidak Baik",
        "grade": "40",
        "description": "Anggota kelompok,\r\n • jarang berpartisipasi, • waktu terbuang, atau • mengerjakan materi yang tidak terkait.",
        "order_number": 2,
        "created_at": "2017-07-05T06:44:12.000Z",
        "updated_at": "2017-07-05T06:44:12.000Z",
        "checked": true
    },
]

...
...