Überprüfen Sie, ob der Name unter nicht gelöschten Elementen mit Laravel-Validierung eindeutig ist

9

Ich habe ein einfaches Formular, das an einen Controller sendet, der prüft, ob ein Name für einen Artikel bereits für ein bestimmtes Projekt vergeben wurde. Wenn dies der Fall ist, wird ein Fehler zurückgegeben. Dies ist der Code, den ich dafür verwende:

%Vor%

Das Problem, das mir begegnet ist, ist, dass ich anstelle eines harten Löschens ein sanftes Löschen verwende, um sie aus der Datenbank zu entfernen, was bedeutet, dass beispielsweise "Test" nur einmal als Name verwendet werden kann. selbst nachdem es gelöscht wurde.

Wie kann ich sicherstellen, dass es unter den Elementen, die nicht gelöscht werden, eindeutig für dieses Projekt ist?

    
Samsquanch 29.04.2014, 20:51
quelle

2 Antworten

18

Sie können dies versuchen:

%Vor%

Dies stellt sicher, dass name in der Tabelle versions eindeutig ist, wenn ein Datensatz weich gelöscht wird und denselben Namen hat, dann wird er nicht gezählt, bedeutet, dass der Name akzeptiert wird, selbst wenn dort ist ein gelöschter gelöschter Datensatz mit demselben Namen vorhanden.

Um ein Modell beim Aktualisieren zu ignorieren, sollten Sie das id nach name anstelle des ersten NULL übergeben.

Update: Sie können auch so etwas verwenden, um eine eigene benutzerdefinierte Regel hinzuzufügen:

%Vor%

Sie können es wie folgt verwenden:

%Vor%     
The Alpha 29.04.2014, 22:10
quelle
1

Ich weiß, dass diese Frage alt ist, aber ich bin darüber gestolpert, als ich nach einer Lösung für ein ähnliches Problem suchte. Sie benötigen keinen benutzerdefinierten Validierungscode.

Ich habe eine Datenbank mit Ledger-Codes, in der 'name' und 'short_name' für jeden Benutzer eindeutig sein müssen (user_id). Ich habe weiche Löschungen aktiviert, daher sollten sie nur für nicht gelöschte Zeilen für einen bestimmten Benutzer eindeutig sein.

Dies ist meine Funktion, die die Validierungszeichenfolgen zurückgibt:

%Vor%

Für jeden, der sich über die Argument-String-Syntax für den eindeutigen Validator Gedanken macht, ist das Folgende:

%Vor%

Die Wertfelder in Feldername / Wert-Paaren können entweder ein Wert sein, der übereinstimmt, NULL oder NOT_NULL.

    
mp035 17.07.2017 08:10
quelle

Tags und Links