Как проверить запись в случае обновления в следующей критической ситуации, используя Laravel? - PullRequest
0 голосов
/ 02 марта 2020

Я хочу обновить запись, но перед обновлением я хочу проверить: - 1. если пользователь существует в то время, когда ему не разрешено обновлять.

Пример: -

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

Контроллер: -

    public function update_data($update_id){

        $gender_list = ['Male', 'Female', 'Other'];
        $country_list = ['India', 'US', 'UK', 'Germany', 'Austraila'];

        $Validator = $this->validate(request(), [
            'username' => 'required|unique:userlists|alpha_num|max:30',
            'email' => ['required', 'unique:userlists', 'email', 'regex:/((yahoo|gmail|hotmail)\.com)/'],
            'password' => 'required',
            'bod' => 'required|after_or_equal:today',
            'comments' => 'required',
            'phone_no' => 'required|numeric',
            'country' => 'required|alpha',
            'gender' => 'required',
            'agreement' => 'required',
        ],[
            'required' => 'Please Enter Your :attribute',
        ]);  

        if(!in_array($request->gender, $gender_list) || !in_array($request->country, $country_list)){

            session()->flash('G_msg', 'Hello Hackes Please Go Back');
            return back();

        }   

       if($Validator->passes()){
                       // updation code.
      }

    }

Ответы [ 3 ]

2 голосов
/ 02 марта 2020

Вы можете использовать проверку, как показано ниже:

'username' => ['required','alpha_num', 'max:30',Rule::unique('userlists')->ignore($update_id)]

Убедитесь, что правило определено выше Класс:

используйте Illuminate \ Validation \ Rule;

2 голосов
/ 02 марта 2020

попробуй уникальный

'username' => 'required|unique:table_name,username,' . $update_id . ',user_id',
1 голос
/ 02 марта 2020

Вы можете использовать Rule

use Illuminate\Validation\Rule;

'username' => ['required','alpha_num', 'max:30',Rule::unique('userlists')->ignore($update_id)]
...