2015-09-27 18 views
7

Ich arbeite an Laravel 4.2. Im Versuch, Validator zu verwenden, um ein Namensfeld mit regex zu bestätigen, hier ist meine Regel unter:Laravel preg_match(): Kein Endbegrenzer '/' gefunden

public static $rules_save = [ 

     'class_subjects' => 'required|regex:/[0-9]([0-9]|-(?!-))+/' 
    ]; 

Aber sobald ich die Regel rufe ein Fehler validiert wird ausgelöst, siehe unten:

preg_match(): No ending delimiter '/' found 
+0

@ Rizier123 es ist nicht die gleiche Frage, es sieht einfach gleich :) – Arlind

Antwort

36

Da Ihr regex ein Rohr in ihm hat, haben Sie ein Array verwenden:

public static $rules_save = [ 
    'class_subjects' => ['required', 'regex:/[0-9]([0-9]|-(?!-))+/'], 
]; 

Von the docs:

Bei der Verwendung des regex Musters kann es erforderlich sein, Regeln in einem Array anzugeben, anstatt Rohrtrennzeichen zu verwenden, insbesondere wenn der reguläre Ausdruck ein Pipe-Zeichen enthält.

+0

Vielen Dank, es funktioniert. Ich habe das früher gelesen und dachte nur, dass ich es nicht brauche. – Arlind

+0

haha ​​warum hast du das gedacht? Es sagt ausdrücklich, dass, wenn Sie eine Pfeife haben ... – Juan

+0

danke es funktioniert !! – shalonteoh