Example #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($company_id, $id, Request $request)
 {
     //dd($request->all());
     $job = Job::find($id);
     $job->job_title = $request->input('job_title');
     $job->creative_field = $request->input('creative_fields');
     $job->location = $request->input('location');
     $job->exp_date = $request->input('exp_date');
     $job->pre_lang = $request->input('pre_lang');
     $job->res_lang = $request->input('res_lang');
     $job->salary = $request->input('salary');
     $job->salary_from = $request->input('salary_from');
     $job->salary_to = $request->input('salary_to');
     $job->contact_gender = $request->input('contact_gender');
     $job->contact_name = $request->input('contact_name');
     $job->apply_email = $request->input('apply_email');
     $job->job_desc = $request->input('description');
     $job->apply_reason = $request->input('apply_reason');
     $job->save();
     /* Update job level */
     $levels = $request->input('job_level');
     $count_lev = sizeof($levels);
     for ($i = 0; $i < $count_lev; $i++) {
         $job_level = new JobLevel();
         $job_level->job_id = $job->id;
         $job_level->level_id = $levels[$i];
         $job_level->save();
     }
     /* Update job types */
     $edit_types = $request->input('job_type');
     // stored in array
     $created_types = $job->job_types->list('type_id');
     // compare 2 arrays
     $add_types = array_value(array_diff($edit_types, $created_types));
     $delete_types = array_value(array_diff($created_types, $edit_types));
     // add new types
     $count_typ = sizeof($add_types);
     for ($i = 0; $i < $count_typ; $i++) {
         $job_type = new JobType();
         $job_type->job_id = $id;
         $job_type->type_id = $add_types[$i];
         $job_type->save();
     }
     // delete types
     $count_del = sizeof($delete_types);
     for ($i = 0; $i < $count_del; $i++) {
         $job_type = JobType::where('type_id', '=', $delete_types[$id])->first();
         $job_type->delete();
     }
     /* Update job skills */
     $names = $request->input('skillnames');
     $descs = $request->input('skilldescs');
     $count_ski = sizeof($names);
     for ($i = 0; $i < $count_ski; $i++) {
         $jobskill = new JobSkill();
         $jobskill->job_id = $job->id;
         $jobskill->name = $names[$i];
         $jobskill->description = $descs[$i];
         $jobskill->save();
     }
     $company = Company::find($company_id);
     return view('jobs.show', compact('job', 'company'));
 }