public function createNewTest(Request $request)
 {
     $user = Auth::User();
     //get all information of a new Test.
     //返回一个成功的信息回去
     $name = $request->input('name');
     $semester = $request->input('semester');
     $type = $request->input('type');
     $date = $request->input('date');
     $schools_id = 1;
     $newExamination = new Examination();
     $newExamination->name = $name;
     $newExamination->semester = $semester;
     $newExamination->type = $type;
     $newExamination->date = $date;
     $newExamination->description = $request->input('description');
     $newExamination->schools_id = $schools_id;
     $newExamination->save();
     //将这个新的考试信息存储到session中
     //     $request->session()->put('newExamination', $newExamination);
     $checkedIds = $request->input('add');
     $sections = DB::table('sections')->whereIn('id', $checkedIds)->get();
     $allStudentsAllSections = [];
     $i = 0;
     //已经创建了一个新的examination,也已经知道有多少个班级会被记录,因此可以为每个班级的每个学生创建此次考试的transcription.
     foreach ($sections as $section) {
         $allStudentsAllSections[$i]['sectionGrade'] = $section->grade;
         $allStudentsAllSections[$i]['sectionOrder'] = $section->order;
         $allStudentIdsEachSection = User::getStudentBySection($section->id);
         $allStudentsEachSection = DB::table('users')->whereIn('id', $allStudentIdsEachSection)->get();
         $allStudentsAllSections[$i]['students'] = $allStudentsEachSection;
         $i++;
     }
     //在examinationsInfos表中将sectionId, examinationsId, 和当前users_id生成一新的数据.
     foreach ($sections as $section) {
         $examinationsInfos = new Examinationsinfo();
         $examinationsInfos->users_id = $user->id;
         $examinationsInfos->examinations_id = $newExamination->id;
         $examinationsInfos->sections_id = $section->id;
         $examinationsInfos->save();
     }
     //        Session::put('url.intended', URL::previous());
     //        Session::put('url.intended', URL::previous());  // using the Facade
     //        session()->put('url.intended', URL::previous()); // using the L5 helper
     //        dd($allStudentsAllSections);
     /*Session::flash('backUrl', Request::fullUrl());*/
     //        在这里将"sections","allStudentsAllSections","newExamination"都放到session中,
     //以便在教师填写填写完学生的考试成绩时, 在取出, 返回到allSectionsEachTest.blade.php页面
     Session::put('newExamination', $newExamination);
     Session::put('allStudentsAllSections', $allStudentsAllSections);
     //        $data = Session::all();
     //        dd($data);
     return view('scores.allSectionsEachTest', compact('user', 'sections', 'allStudentsAllSections', 'newExamination'));
     /*        foreach($checkedIds as $checkedId){
     
                 $teachingSections = TeachingSection::where('sections_id', '=', $checkedId)->get();
     
                 $studentsIds = DB::table('teaching_sections')->where('sections_id', '=', $checkedId)->lists('users_id');
                 $students = DB::table('users')->where('role', '=', '1')->whereIn('id', $studentsIds)->get();
                 $section = Section::find($checkedId);
     
                 return view('scores.logStudentsTestResult', compact('students', 'section', 'newExamination'));*/
     //            foreach ($teachingSections as $teachingSection) {
     ////                这里得到的是一个collection of users
     //                $students = User::where('id', '=', $teachingSection->users_id)
     //                    ->where('role', '=', '1')->get();
     //                $section = Section::find($teachingSection->sections_id);
     //
     ////            return view('scores.logStudentsTestResult', compact('students', 'section', 'newExamination'));
     //
     //            }
 }
Example #2
0
 /**
  * Update the specified resource in storage.
  *
  * @param  Request  $request
  * @param  int  $id
  * @return Response
  */
 public function update(ExaminationCreateFormRequest $request)
 {
     $POrecord = POcase::findOrFail($request->get('POrecord_id'));
     Examination::where('POrecord_id', '=', $POrecord->id)->delete();
     $sampleName = $request->get('sampleName');
     $indexNo = $request->get('indexNo');
     $barcode = $request->get('barcode');
     $sequencingDate = $request->get('sequencingDate');
     $afterQuantity = $request->get('afterQuantity');
     $Q20 = $request->get('Q20');
     $Q30 = $request->get('Q30');
     $operator = $request->get('operator');
     $operatorDate = $request->get('operatorDate');
     $note = $request->get('note');
     $Sequencing_id = $request->get('Sequencing_id');
     $max = sizeof($sampleName);
     for ($i = 0; $i < $max; $i++) {
         if (!empty($sampleName[$i])) {
             $Examination = new Examination(array('sampleName' => $sampleName[$i], 'indexNo' => $indexNo[$i], 'barcode' => $barcode[$i], 'sequencingDate' => $sequencingDate[$i], 'afterQuantity' => $afterQuantity[$i], 'Q20' => $Q20[$i], 'Q30' => $Q30[$i], 'operatorDate' => $operatorDate[$i], 'note' => $note[$i]));
             $Examination->POrecord()->associate($POrecord);
             $sampleOperator = User::findOrFail($operator[$i]);
             $Examination->operator()->associate($sampleOperator);
             $Sequencing = Sequencing::findOrFail($Sequencing_id[$i]);
             $Examination->Sequencing()->associate($Sequencing);
             $Examination->save();
         }
     }
     return \Redirect::to('research/ngs/examination/edit/' . $POrecord->project->id)->with('message', 'Your Examination has been updated!');
 }