mr. pro
mr. pro

Reputation: 1

laravel form validation errors are not showing properly


I want to make a registration form with laravel form validation.
in that case, i face a great problem.
form validation is working but errors are not displaying properly.

I see these error for email & phone : Validation.unique
for required fields : validation.required

here is my controller's code :

 public function homeregister(Request $request)
    {
      $this->validation($request);
      $request['password'] = bcrypt($request->password);
      $email_verification = time();
      $sms_verify_code = mt_rand(100000, 999999);
      $name = $request->fname.' '.$request->lname;
      $dob = $request->year.'-'.$request->month.'-'.$request->day;
      User::create(['email'=>$request->email,'password'=>$request['password'],'fname'=>$request->fname,'lname'=>$request->lname,'gender'=>$request->gender,'dob'=>$dob,'religion'=>$request->religion,'country'=>$request->country,'email_verify_code'=>$email_verification,'phone'=>$request->phone,'sms_verify_code'=>$sms_verify_code,'name'=>$name,'identifier'=>$request->fname,'profile_created_by'=>$request->profile_for]);
      $value = $request->email;
      $phone = $request->phone;
      Session::put('email', $value);
      Session::put('phone', $phone);
      $myuser = DB::table('users')->select()->where('email',Session::get('email'))->first();
      DB::insert('insert into tbl_profile_photo (userid,photo) values(?,?)',[$myuser->id,null]);
      DB::insert('insert into tbl_cover_photos (userid,photo) values(?,?)',[$myuser->id,null]);
      \Mail::to($value)->send(new wellcome);
      Auth::loginUsingId($myuser->id);
      Session::put('userid',$myuser->id);
      return redirect('/update-profile');
}

Validation function :

public function validation($request)
    {
        $validatedData = $request->validate([
            'fname' => 'required|max:255',
            'lname' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'phone' => 'required|unique:users|max:255',
            'gender' => 'required|max:255',
            'year' => 'required|max:255',
            'month' => 'required|max:255',
            'day' => 'required|max:255',
            'religion' => 'required|max:255',
            'country' => 'required|max:255',
            'password' => 'required|min:6',
    ]);
    }

My views code :

@if (count($errors) > 0)
@foreach ($errors->all() as $error)
<div class="alert alert-danger alert-dismissible mb-2" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
  <span aria-hidden="true">×</span>
</button>
  <strong>Oh snap!</strong> {{$error}}
</div>
@endforeach
@endif

Didn't understand ? whats the wrong ??

Upvotes: 0

Views: 329

Answers (1)

Prince Gupta
Prince Gupta

Reputation: 1

do you take same name as email in your database table ?if yes then unique validation is working otherwise it will not working.

Upvotes: 0

Related Questions