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.
Woo es funktionierte! Danke vielmals! –