..laravel doğrulayıcı - Bütünlük kısıtlama ihlali
$this->validate($request, [
'employee_number' => 'required|unique:employees'
]);
Ama nasıl mevcut çalışan düzenlerken bu işlemi yapabilirsiniz: yeni bir çalışan oluştururken sadece arayıp çünkü
, bu oldukça kolaydır? Ben "düzenlenmiş" employee_number DİĞER kullanıcıları için benzersiz olup olmadığını (kontrol etmek istiyorum ... ben bunu
yapmaya çalıştımemployee_number NOT IN (SELECT employee_number
FROM employees
WHERE id = *edited_user_id*)
doğrulama formu laravel için bu sorguyu yeniden yazmak gerektiği anlamına gelmektedir i onun değiştirseniz bile ..> Tamam -
$this->validate($request, [
'employee_number' => 'required|unique:employees,id,'.$input['employee_id']
]);
, bir tablodaki kayıtları "çalışanlar"
id | name | employee_number
-----------------------------
1 | Peter | 0001
2 | Paul | 0002
3 | Frank | 0003
Frank'in verileri değiştirmek için denemek
vardır düşünün çalışan numarası, bazı benzersiz bir tane, o iyi çalışıyor ...Ama bir Frank'in hesabı için mevcut olanı eklediğimde, yani 0001 bana çalışan numarasının zaten alınmış olduğu uygun bir hata mesajı vermez (doğrulayıcıdan). ancak bunun yerine, bu
Whoops, looks like something went wrong.
QueryException in Connection.php line 669:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0001' for key 'employees_employee_number' (SQL: *here comes the wrong sql query*)
benim haklı ben yeni çalışana eklemek ve mevcut id eklemek için denemek çalıştığınızda gibi formda yukarıdaki doğru hata çıtayı yükseltmek nasıl biliyor musunuz hata sayfasına beni yönlendirir?
maaaaaaan, sen benim cankurtarancısın :) Sana bir bira borçluyum! +1 çok teşekkür ederim –