Laravel более чистый способ вставки данных в сводную таблицу с отношением тройной таблицы - PullRequest
1 голос
/ 06 февраля 2020

это достаточно чисто, чтобы напрямую вставить данные в сводную таблицу с 3 отношениями внешних ключей, моя логика c, почему я создаю эту сводную таблицу, это для хранения [student_id, subject_id, mark_id, Score] тогда когда-нибудь я смогу редактировать и обновлять сводную таблицу с оценкой ученика? Я ищу мнение по этому вопросу, если я делаю или подхожу к нему неправильно, пожалуйста, скажите мне, или любое предложение для лучшего подхода

Контроллер:

 public function Store( Request $request)
    {
        $subject=$request->subject_id;
        $student=$request->student_id;
        $mark=$request->mark_id;
        $data=[];

                 foreach($subject as $sb){
                    foreach($student as $st){
                        foreach($mark as $mk){
                            $data[]=StudentSubjectMark::create([
                            'subject_id'=>$sb,
                            'student_id'=>$st,
                            'mark_id'=>$mk
                        ]);
                    }}}  

                return $data;
    }

Выход:

[
  {
    "subject_id": "1",
    "student_id": "1",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 6
  },
  {
    "subject_id": "1",
    "student_id": "1",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 7
  },
  {
    "subject_id": "1",
    "student_id": "2",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 8
  },
  {
    "subject_id": "1",
    "student_id": "2",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 9
  },
  {
    "subject_id": "1",
    "student_id": "3",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 10
  },
  {
    "subject_id": "1",
    "student_id": "3",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 11
  },
  {
    "subject_id": "1",
    "student_id": "4",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 12
  },
  {
    "subject_id": "1",
    "student_id": "4",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 13
  },
  {
    "subject_id": "1",
    "student_id": "5",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 14
  },
  {
    "subject_id": "1",
    "student_id": "5",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 15
  },
  {
    "subject_id": "1",
    "student_id": "6",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 16
  },
  {
    "subject_id": "1",
    "student_id": "6",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 17
  },
  {
    "subject_id": "1",
    "student_id": "7",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 18
  },
  {
    "subject_id": "1",
    "student_id": "7",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 19
  },
  {
    "subject_id": "1",
    "student_id": "8",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 20
  },
  {
    "subject_id": "1",
    "student_id": "8",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 21
  },
  {
    "subject_id": "1",
    "student_id": "9",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 22
  },
  {
    "subject_id": "1",
    "student_id": "9",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 23
  },
  {
    "subject_id": "1",
    "student_id": "10",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 24
  },
  {
    "subject_id": "1",
    "student_id": "10",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 25
  },
  {
    "subject_id": "2",
    "student_id": "1",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 26
  },
  {
    "subject_id": "2",
    "student_id": "1",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 27
  },
  {
    "subject_id": "2",
    "student_id": "2",
    "mark_id": "1",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 28
  },
  {
    "subject_id": "2",
    "student_id": "2",
    "mark_id": "2",
    "updated_at": "2020-02-06 01:31:35",
    "created_at": "2020-02-06 01:31:35",
    "id": 29
  }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...