public function getFirstNameWithDegree() { $degree = Degree::where('user_id', $this->id)->where('primary_degree', 1)->first(); $degree_type = ""; switch ($degree->type) { case "ba": $degree_type = "BA"; break; case "bcmp": $degree_type = "BCMP"; break; case "bfa": $degree_type = "BFA"; break; case "bphe": $degree_type = "BPHE"; break; case "bs": $degree_type = "BSc"; break; case "bsce": $degree_type = "BScE"; break; case "bcomm": $degree_type = "BComm"; break; case "msc": $degree_type = "MSc"; break; case "phd": $degree_type = "PhD"; break; } return $this->first_name . ' (' . $degree_type . " '" . substr(strval($degree->year), 2) . ')'; }
Route::post('/profile', array('middleware' => 'auth', function (Request $request) { $data = $request->all(); $validator = \Illuminate\Support\Facades\Validator::make($request->all(), ['first_name' => 'required|max:255', 'last_name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users,email,' . Auth::id(), 'phone_number' => 'required', 'num_degrees' => 'required|numeric|integer|min:0|max:4', 'degree_year_one' => 'required|numeric|integer|min:1920|max:2020', 'degree_faculty_one' => 'required|in:arts_and_science,education,engineering_and_applied_science,health_science,law,business,graduate_studies,policy_studies', 'degree_type_one' => 'required|in:ba,bcmp,bfa,bphe,bs,bsce,bcomm,msc,phd', 'degree_year_two' => 'required_if:num_degrees,2|required_if:num_degrees,3|required_if:num_degrees,4|numeric|integer|min:1920|max:2020', 'degree_faculty_two' => 'required_if:num_degrees,2|required_if:num_degrees,3|required_if:num_degrees,4|in:arts_and_science,education,engineering_and_applied_science,health_science,law,business,graduate_studies,policy_studies', 'degree_type_two' => 'required_if:num_degrees,2|required_if:num_degrees,3|required_if:num_degrees,4|in:ba,bcmp,bfa,bphe,bs,bsce,bcomm,msc,phd', 'degree_year_three' => 'required_if:num_degrees,3|required_if:num_degrees,4|numeric|integer|min:1920|max:2020', 'degree_faculty_three' => 'required_if:num_degrees,3|required_if:num_degrees,4|in:arts_and_science,education,engineering_and_applied_science,health_science,law,business,graduate_studies,policy_studies', 'degree_type_three' => 'required_if:num_degrees,3|required_if:num_degrees,4|in:ba,bcmp,bfa,bphe,bs,bsce,bcomm,msc,phd', 'degree_year_four' => 'required_if:num_degrees,4|numeric|integer|min:1920|max:2020', 'degree_faculty_four' => 'required_if:num_degrees,4|in:arts_and_science,education,engineering_and_applied_science,health_science,law,business,graduate_studies,policy_studies', 'degree_type_four' => 'required_if:num_degrees,4|in:ba,bcmp,bfa,bphe,bs,bsce,bcomm,msc,phd']); if ($validator->fails()) { return redirect(url('/profile'))->withInput()->withErrors($validator); } /* Update the user account */ $user = User::find(Auth::id()); $user->first_name = $data['first_name']; $user->last_name = $data['last_name']; $user->email = $data['email']; $user->phone_number = $data['phone_number']; $user->number_of_degrees = $data['num_degrees']; $user->save(); /* Scary! Delete all the existing degrees */ $degrees = \App\Degree::where('user_id', $user->id)->orderBy('id', 'asc')->get(); foreach ($degrees as $degree) { $degree->delete(); } /* Recreate the degrees in the same way as AuthController */ $num_degree_str = ['one', 'two', 'three', 'four']; for ($i = 0; $i < $data['num_degrees']; $i++) { $degree = new Degree(); $degree->year = $data['degree_year_' . $num_degree_str[$i]]; $degree->user_id = $user->id; $degree->faculty = $data['degree_faculty_' . $num_degree_str[$i]]; $degree->type = $data['degree_type_' . $num_degree_str[$i]]; if ($i == 0) { $degree->primary_degree = true; } else { $degree->primary_degree = false;
public function addDegree(Request $request, Skill $skill) { // if(!$request->hasFile('sample_file')) return response('No file was sent',404); $validator = Validator::make($request->all(), ['sample_file' => 'required | image']); if ($validator->fails()) { return ['hasCallback' => 0, 'callback' => '', 'hasMsg' => 1, 'msg' => trans('profile.invalidDegree'), 'msgType' => 'danger', 'returns' => '']; } $file = $request->file('sample_file'); $input = $request->except('sample_file'); $user = Auth::user(); $extension = $file->getClientOriginalExtension(); $base_name = $user->id . str_random(20); $imageName = $base_name . '.' . $extension; $file->move(public_path() . '/img/files/' . $user->id . '/', $imageName); $this->ImageProccess($base_name, $extension, $user, true); // resize and add watermark $real_name = $file->getClientOriginalName(); $size = $file->getClientSize() / (1024 * 1024); //calculate the file size in MB $degree = $skill->degrees()->create($input); Degree::where('id', $degree->id)->first()->files()->create(['user_id' => $user->id, 'real_name' => $real_name, 'name' => $user->id . '/' . $imageName, 'size' => $size]); $input['file'] = $imageName; return ['hasCallback' => '1', 'callback' => 'skill_degrees', 'hasMsg' => 0, 'msg' => '', 'returns' => $skill->degrees()->with('files')->get()]; }