验证无法更新数据库中的值

时间:2020-03-19 06:01:03

标签: laravel

我正在对gst和adhar使用验证,但是当其无错误时,我正在更新值,但值无法更新。我在其他部分给出更新代码。我做错了什么?需要一个解决方案。在某些情况下,我正在检查验证,在其他部分中,如果错误没有来临,我正在从表中更新值,但我无法工作。

public function profile_update(Request $req,$id)
{

    $mytime      = Carbon::now();
    $fullname    = $req->input('fullname');
    $email       = $req->input('email');
    $mobile      = $req->input('mobile');
    $gender      = $req->input('gender');
    $gstnumber   = $req->input('gst_number');
    $adharnumber = $req->input('aadhar_number');
    $password    = $req->input('password');
    $cpassword   = $req->input('c_password');
    $updated_at  = $mytime->toDateTimeString();
    $created_at  = $mytime->toDateTimeString();

    $validator = Validator::make($req->all(), [
        'email' => 'email|unique:users,email',
        'aadhar_number' => 'unique:users,aadhar_number' ,
        'gst_number' => 'regex:^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$^|unique:users,gst_number'
    ]);
    if($validator->fails()) 
    {
        //dd("hello");
        $messages = $validator->messages();
        //return Redirect::to('/customer')->with('message', 'Register Failed');
        return redirect('/profile')
            ->withErrors($validator)
            ->withInput();
    }
    else
    {
        if ($req->hasFile('update_image'))
        {
            $image           = $req->file('update_image');
            $filename        = $image->getClientOriginalName();
            $destinationPath = public_path('/images/users_profile/');
            $image->move($destinationPath, $filename);

            DB::update(
                'update users set name = ?,email = ?,mobile = ?,image = ?,gender = ?,gst_number=?,aadhar_number=?,password = ?,cpassword = ? where id = ?',
                [$fullname, $email, $mobile, $filename, $gender, $gstnumber, $adharnumber, $password, $cpassword, $id]
            );
        }
        else
        {
            DB::update(
                'update users set name = ?,email = ?,mobile = ?,gender = ?,gst_number=?,aadhar_number=?,password = ?,cpassword = ? where id = ?',
                [$fullname, $email, $mobile, $gender, $gstnumber, $adharnumber, $password, $cpassword, $id]
            );
        }
        return redirect('/profile');
    }
}

1 个答案:

答案 0 :(得分:0)

您不需要if else语句

$req->validate([
    'email' => 'email|unique:users,email',
        'aadhar_number' => 'unique:users,aadhar_number' ,
        'gst_number' => 'regex:^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$^|unique:users,gst_number'

// continue your update code here

]);

只需执行此操作,它将为您完成Needfull 如果值不满足您的条件,它将返回上一个视图,如果条件满足,它将继续运行代码。

用于更新数据

  $data = user::find(id);
  $data->name = $name;
  $data->email = $email;
  .
  .
  .
  .
  //update all the fields 
  $data->save();