2015-09-27 15 views
7

Sto lavorando su Laravel 4.2. Im cercando di utilizzare Validator per convalidare un campo del nome con espressioni regolari, qui è la mia regola di seguito:Laravel preg_match(): Nessun delimitatore finale '/' trovato

public static $rules_save = [ 

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

Ma appena io chiamo la regola da convalidare viene generato un errore, vedere sotto:

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

@ Rizier123 non è la stessa domanda, sembra proprio lo stesso :) – Arlind

risposta

36

Dal momento che il regex ha un tubo in esso, è necessario utilizzare un array:

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

da the docs:

Quando si utilizza il modello regex, potrebbe essere necessario specificare le regole in un array anziché utilizzare i delimitatori di pipe, soprattutto se l'espressione regolare contiene un carattere pipe.

+0

Grazie funziona. L'ho letto prima e ho solo pensato che non ne avessi bisogno. – Arlind

+0

haha, perché l'hai pensato? Dice esplicitamente che se hai un tubo ... – Juan

+0

grazie funziona !! – shalonteoh

Problemi correlati