I Mitarbeiter haben, die hat (Autoinkrement) eindeutige ID in der Datenbank (ziemlich einfach :)), aber ich möchte die Einzigartigkeit anderen Feld überprüfen, die ihre employee_number sein ..Laravel Validator - Integrität Einschränkungsverletzung
während die neuen Mitarbeiter zu schaffen, ist es ziemlich einfach, weil ich einfach anrufen:
$this->validate($request, [
'employee_number' => 'required|unique:employees'
]);
Aber wie kann ich diese während tun Bearbeitung vorhandener Mitarbeiter? Ich möchte überprüfen (wenn die „bearbeitet“ employee_number für ANDERE Benutzer einzigartig ist ... es bedeutet, dass ich diese Abfrage neu zu schreiben, müssen Validierungs Formular Laravel
employee_number NOT IN (SELECT employee_number
FROM employees
WHERE id = *edited_user_id*)
Ich habe versucht, diese
zu tun$this->validate($request, [
'employee_number' => 'required|unique:employees,id,'.$input['employee_id']
]);
Stell dir vor, es gibt Aufzeichnungen in einer Tabelle „Mitarbeiter“
id | name | employee_number
-----------------------------
1 | Peter | 0001
2 | Paul | 0002
3 | Frank | 0003
wenn ich versuche, Frank Daten zu ändern -> es ist ok .. auch wenn ich seine ändern Mitarbeiter-Nummer zu einigen einzigartigen, es funktioniert ok ..
Aber wenn ich eine für Frank's Konto, dh 0001 einfügen gibt es mir keine richtige Fehlermeldung (aus Validator), dass Mitarbeiter Nummer bereits vergeben ist .. aber statt dass es leitet mich auf die Fehlerseite
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*)
wissen Sie, wie kann ich die richtigen Fehlerbalken rechts oberhalb der Form heben wie wenn ich versuche, neue Mitarbeiter einzusetzen und versuchen, die bestehende ID einfügen?
maaaaaaan, du bist mein Lebensretter :) Ich schulde dir ein Bier !! +1 vielen Dank –