2017-11-06 2 views
0

Ich habe gerade eine Anfrage mit php artisan make:request MyExampleRequest erstellt und das nächste, was ich tun muss, ist eine Logik, wo ich den Wert von Formulareingabe erhalten und vergleichen kann und Wählen Sie, welche Validierung der Logik folgen soll.Laravel: Validierungsregeln, die davon abhängen, was die Anfrage verwendet Bedingung

Im Innern der rules() Methode der MyExampleRequest.php würde die Logik wie:

public function rules() 
{ 
    if($valueFromPostInput === '2') { 

     return [ 
      'email' => 'required|email', 
      'confirm_email' => 'required|email|same:email', 
      'g-recaptcha-response' => 'required|recaptcha' 
     ]; 

    } 

    return [ 
     'email' => 'required|email', 
     'g-recaptcha-response' => 'required|recaptcha' 
    ]; 
} 

ich diese Logik versucht:

public function rules() 
{ 
    if($this->attributes->has('valueFromPostInput') === '2') { 
     // more codes... } 
} 

Aber das hat nicht funktioniert.

Ich weiß, dass ich dieses achive kann die Logik unten im Inneren des MyExampleController.php-Controller verwenden:

public function create(Request $request) 
{ 
    if($request->valueFromPostInput === '2') { 
     $this->validate($request, [ 
      'email' => 'required|email', 
      'confirm_email' => 'required|email|same:email', 
      'g-recaptcha-response' => 'required|recaptcha' 
     ]); 
    } else { 
     $this->validate($request, [ 
      'email' => 'required|email', 
      'g-recaptcha-response' => 'required|recaptcha' 
     ]); 
    } 
} 

Aber ich möchte, dass in Antrag passieren, dass ich mit php artisan make:request MyExampleRequest gemacht und wie public function(MyExampleRequest $request) in meinem Controller verwenden .

Ich suchte nach der Antwort, die ich nicht finden kann. Ich habe deine Antwort sehr geschätzt.

PS: Englisch ist nicht meine Muttersprache.

Antwort

0

Sie könnten den Wunsch Helfer verwenden:

public function rules() 
{ 
    if(request()->get("valueFromPost") === '2') { 

     return [ 
      'email' => 'required|email', 
      'confirm_email' => 'required|email|same:email', 
      'g-recaptcha-response' => 'required|recaptcha' 
     ]; 

    } 

    return [ 
     'email' => 'required|email', 
     'g-recaptcha-response' => 'required|recaptcha' 
    ]; 
} 
+0

Woo es funktionierte! Danke vielmals! –

Verwandte Themen