2017-06-08 1 views
0

Gibt es eine Möglichkeit, ein anderes Feld zu referenzieren, wenn die Validierungsregel exists in Laravel angegeben wird?Laravel-Validierung: existiert zweispaltig dieselbe Zeile

Meine Anfrage:

public function rules() 
    { 

     return [ 
      'numero_de_somme' => 'unique:personnels,numero_de_somme|exists:fonctionnaire,num_somme', 
      'cin' => 'unique:personnels,cin|exists:fonctionnaire,cin', 

     ]; 
    } 

in meine Validierungsregeln Ich möchte sicherstellen können, dass:

  • num_somme innerhalb der fonctionnaire Tabelle existiert
  • cin innerhalb der fonctionnaire Tabelle vorhanden ist und cin Eingang muss in der gleichen Zeile num_somme
  • 012 sein

num_somme: 12345 cin: s89745

num_somme: 78945 cin: U10125

erklären: zum Beispiel

  • erste Szenario, wenn der Eingang num_somme = 12345 und cin = U10125 Die Validierung muss Fehler
  • 2. Szenario, wenn der Eingang num_somme = 12345 und cin = s89745 der Wert ist Idation muss Erfolg

Ich hoffe, das macht Sinn.

Danke

Antwort

0

ich es geschafft, es zu lösen, um die einfachste Methode

  • für numero_de_somme

'numero_de_somme' => 'unique:personnels,numero_de_somme|exists:fonctionnaire,num_somme,cin,'.Request::get('cin'),

  • für cin

'cin' => 'unique:personnels,cin|exists:fonctionnaire,cin',

PS.Vergessen Sie nicht, use Illuminate\Http\Request;

anzurufen
0

ich auf das gleiche Bedürfnis heute kam und ich glaube, ich habe eine Lösung der Gültigkeitsregel-Klasse: Rule example.

Hier ist mein Szenario: Ich habe eine E-Mail-Verifizierungstabelle und ich möchte sicherstellen, dass ein passender Maschinencode und Aktivierungscode in derselben Zeile vorhanden sind.

Seien Sie sicher, use Illuminate\Validation\Rule;

$activationCode = $request->activation_code;         

$rules = [                  
    'mc' => [                 
     'required',                
     Rule::exists('email_verifications', 'machineCode')      
     ->where(function ($query) use ($activationCode) {      
      $query->where('activationCode', $activationCode);     
     }),                  
    ],                   
    'activation_code' => 'required|integer|min:5',        
    'operating_system' => 'required|alpha_num|max:45'       
]; 

Das erste Argument in der existiert Methode der Tabelle ist und die zweite ist die benutzerdefinierte Spaltennamen ich benutze für die ‚mc‘ Feld aufzunehmen. Ich übergebe die zweite Spalte, die ich überprüfen möchte, mit dem Schlüsselwort 'use' und verwende dann dieses Feld in einer where-Klausel.

Verwandte Themen