Проверка не может обновить значение в базе данных - PullRequest
0 голосов
/ 19 марта 2020

Я использую валидацию для 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 голосов
/ 19 марта 2020

вам не нужен оператор 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

]);

Просто сделайте это, и он будет вам полезен, если ваши условия не будут соответствовать значениям, он вернется к предыдущему представлению и если условия выполнены, он продолжит выполнение кодов.

для обновления данных

  $data = user::find(id);
  $data->name = $name;
  $data->email = $email;
  .
  .
  .
  .
  //update all the fields 
  $data->save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...