2016-08-31 3 views
0

Ich versuche zu Setup mit Bedingung Gültigkeitsregel, habe aber keine Ahnung, wie folgendes zu tun:Laravel Validierung mit kundenspezifischen Zustand

In meiner Form Ich habe title_url (Array für mehrere Sprachversionen). Ich möchte eine eindeutige title_url haben, aber nur, wenn module_cat_id im Formular den gleichen Wert wie die vorhandenen Zeilen in der DB hat.

Dies ist meine Regel:

'title_url.*' => 'required|min:3|unique:modules_cat_lang,title_url' 

Irgendwelche Ideen wie diese zu lösen?

Antwort

1

Sie können Ihre benutzerdefinierten ähnlich definieren unten kodieren:

\Validator::extend('custom_validator', function ($attribute, $value, $parameters) { 
     foreach ($value as $v) { 
      $query = \DB::table('modules_cat_lang') // use model if you have 
       ->where('title_url', $v) 
       ->where('module_cat_id', \Input::get('module_cat_id')); 
      if ($query->exists()) { 
       return false; 
      } 
     } 
    }); 
'title_url.*' => 'required|min:3|custom_validator' 

Lesen Sie hier mehr https://laravel.com/docs/5.3/validation#custom-validation-rules.

+0

Danke! Das habe ich gesucht ... – general666