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')); // // } }
/** * 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!'); }