2016-11-14 3 views
3

Ich versuche ein Formular zu senden und den Inhalt zu validieren. In einer der Anfragen muss ich eine spezielle Regel machen. Ich befolgte die Dokumentation und es wird gesagt, dass Sie eindeutig verwenden und eine Regel deklarieren.Laravel Illuminate Validierung Regel nicht gefunden

use Illuminate\Validation\Rule; 

Validator::make($data, [ 
'email' => [ 
    'required', 
    Rule::unique('users')->ignore($user->id), 
], 
]); 

ich mit dem Beispiel aus der Dokumentation bin versucht, aber alles, was ich es diesen Fehler:

Class 'Illuminate\Validation\Rule' not found 

ich die Linie erklärte

use Illuminate\Validation\Rule; 

In meinem Controller, aber der Fehler ist immer noch hier.

+0

Ich habe das gleiche Problem. Es scheint, dass Laravel die Regelklasse nicht enthält. Ich schaue, wie man es hinzufügt. –

+0

Hast du es gelöst? – Andrew

+0

Welche Version von Laravel verwenden Sie? – Imran

Antwort

1

Sie müssen dafür nicht die Rule-Klasse verwenden.

erreichen Sie einfach das gleiche mit folgender Regel:

'email' => 'required|unique:users,email,' . $user->id 
+0

Ich habe das versucht. Aber mein Spaltenname ist nicht ID. Ich kann schreiben. ', Spaltenname', aber aus irgendeinem Grund funktioniert das nicht. Es ignoriert diesen Eintrag nicht. – hatemjapo

+0

Wie lautet der Spaltenname? – henrik

+0

'league_id' ist der Spaltenname – hatemjapo

-2

Warum gehst du nicht in dir Methode so etwas wie dies versuchen:

$validator = Validator::make($request->all(), [ 
    'email' => 'required|unique:<table_name>', 
]); 

if ($validator->fails()) { 
    ... 
} 

Wenn Sie Spalte, wenn auch genannt E-Mail Laravel wissen automaticly , sonst tun

required|unique:<table_name>,<column_name> 

Hier ist ein Link zu der Dokumentation Validierung Abschnitt: https://laravel.com/docs/5.3/validation

+0

Nutzlose Antwort. Lesen Sie die Dokumentation vor dem Posten. Was er fragt, ist über die Dokumentation. –

-1

Die Regelklasse in dem von Ihnen geposteten Beispiel dient zur Validierung eines eindeutigen Felds. Wenn Sie beispielsweise eine E-Mail haben, die in der Tabelle eindeutig sein soll, erhalten Sie beim Speichern des Datensatzes beim Validieren einen Validierungsfehler, da Sie dieselbe E-Mail speichern, die bereits in der Datenbank gespeichert ist.

Das Beispiel Sie auf dem Laufenden:

use Illuminate\Validation\Rule; 

Validator::make($data, [ 
'email' => [ 
    'required', 
    Rule::unique('users')->ignore($user->id), 
], 
]); 

auf diesen Fall bezogen ist, eine Aufzeichnung der Bearbeitung und die E-Mail (einzigartig in der Tabelle Benutzer) zu validieren. In diesem Beispiel wird vermieden, dass die E-Mail für denselben Benutzer validiert wird:

Für die Verwendung müssen Sie die Klasse hinzufügen (nicht im Laravel-Installationsprogramm enthalten). Here Sie haben es.

In Ihrer Frage sagen Sie über die Verwendung der eindeutigen Regel. Die eindeutige Regel gilt für Felder, die in einer Tabelle eindeutig sein müssen, eine E-Mail, eine persönliche Identifikation (Gesetz) und mehr. Überprüfen Sie, ob die eindeutige Regel erforderlich ist.

Verwandte Themen