Open sidebar
// A. olması gereken senaryoya göre (talep önce serviste düzenlenmeli ve düzenlenen talep içeriğine göre userrequest sınıfında doğrulanmalı) sınıflar ve metodları /* UserController */ public function store(UserRequest $request) { $req = $this->form->extractEmptyPasswords($request); return User::updateOrCreate( ['id'=>$req['id']], $req // array comes from request->all() ); } /* UserRequest */ public function rules() { if(isset($this->id)){ // get rules to update a existing user $rules = [ 'name' => 'sometimes|required|string', 'email' => 'sometimes|required|unique:users,id,'.$this->id, 'password' => 'sometimes|required|min:6|confirmed', ]; }else{ // get rules to create a new user $rules = [ 'name' => 'required|string', 'email' => 'required|unique:users', 'password' => 'required|min:6|confirmed', ]; } return $rules; /* UserFormServices */ public function extractEmptyPasswords($request){ // if password field is empty // extract password and password confirmation // fields from the request if(empty($request->password)){ $req = $request->except(['password','password_confirmation']); }else{ // otherwise get all request fields $req = $request->all(); } return $req; } // B. UserRequest ile UserFormService işlem sıralamalarını yönetemediğim için etrafından dolandığım hali ile sınıflar ve metodları /* UserController */ public function store(Request $request) { $req = $this->form->extractEmptyPasswords($request); $rules = $this->form->getValidateRules($req); $validator = Validator::make($req,$rules); if($validator->fails()) dd($validator->errors()); return User::updateOrCreate( ['id'=>$req['id']], $req // array comes from request->all() ); } /* UserFormService */ /** * check if input contains the empty password * and process accordingly to that * @param object $request -Illuminate\Http\Request; * @return object $req */ public function extractEmptyPasswords($request){ // if password field is empty // extract password and password confirmation // fields from the request if(empty($request->password)){ $req = $request->except(['password','password_confirmation']); }else{ // otherwise get all request fields $req = $request->all(); } return $req; } /** * get the appropriate verification * rules for the request * @param object $req * @return array $rules */ public function getValidateRules($req){ if(isset($req['id'])){ // get rules to update a existing user $rules = [ 'name' => 'sometimes|required|string', 'email' => 'sometimes|required|unique:users,id,'.$req['id'], 'password' => 'sometimes|required|min:6|confirmed', ]; }else{ // get rules to create a new user $rules = [ 'name' => 'required|string', 'email' => 'required|unique:users', 'password' => 'required|min:6|confirmed', ]; } return $rules; }
Close sidebar
Back
Please note that all pasted data is publicly available.
X (fomerly Twitter)
GitHub
Use setting
Back
Please note that all pasted data is publicly available.
X (fomerly Twitter)
GitHub
Use setting