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