簡體   English   中英

Laravel API 資源(創建精確 API 的問題)

[英]Laravel API resource (Problem with creating exact API)

我想以下面的格式創建一個 API。 但我做不到。 我正在使用 API 資源。 我嘗試使用不同的查詢,但我沒有得到確切的解決方案。請幫助我。

謝謝

我試過的

$marks = StudentMarksResource::collection(StudentsMark::whereIn('academic_id',$ids)->whereIn('student_id',$studentid)->get());

我的 API 資源文件

public function toArray($request)
{


    return [

        'exam_type' => $this->exam_type,
        'details' => [
                /*  'class_id' => Course::find($this->class_id),
            'batch_id' => Batch::find($this->batch_id),
            'student_id' => Student::find($this->student_id), */
            'subject' => $this->subject,
            'marks' => $this->marks,
            'marksgrade' => $this->marksgrade,
            'total' => $this->total,
            'grade' => $this->grade,
            'percentage' => $this->percentage,
            'year' => $this->year,
        ],

    ];
}

我想要的是這個

   data": [

    {
        "exam_type": "Unit Test 1",
        "details": {
            //subject1 details
        },
        {
            //subject2 details
        },
        {
            //subject3 details
        },

       "exam_type": "Unit Test 2",
        "details": {
            //subject1 details
        },
        {
            //subject2 details
        },
        {
            //subject3 details
        },
    },

我從上面的代碼中得到了什么

"data": [
    {
        "exam_type": "Unit Test 1",
        "details": {
            //subject1 marks details
        }
    },
    {
        "exam_type": "Unit Test 1",
        "details": {
            //subject2 marks details
         }
    },

您可以嘗試以下方法:

  1. 首先獲取考試類型
$exam_types = StudentsMark::select('exam_type', 'student_id', 'academic_id')->whereIn('academic_id',$ids)->whereIn('student_id',$studentid)->get();

$marks = StudentMarksResource::collection($exam_types);
  1. 現在在資源內部,您可以檢索詳細信息
#do not forget to import StudentsMark
#and you can make a resource for details, just to make clean code

    return [

        'exam_type' => $this->exam_type,

        'details' => StudentsMark::where('academic_id', $this->academic_id)
                                 ->where('student_id', $this->student_id)
                                 ->get();
    ];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM