In einer Formularanforderung Klasse verwende ich eine Methode wie diese, um Eingabedaten zu validieren.Laravel - limit FormRequest auf bestimmte Parameter
class SignupRequest extends FormRequest
{
...
public function rules()
{
return [
'user.email' => 'required_with:user|email',
'user.domain_name' => 'required_with:user|string',
'user.password' => 'required_with:user|string|min:8',
'user.username' => 'required_with:user',
];
}
...
}
Später in einem Controller ich so etwas wie dieses
$data = $request->get('user', []);
return $this->response($this->userService->create($data, false), 201);
ich irgendwie meine SignupRequest schreiben wollen, die es übergeben lassen werden Felder sollten. Also, wenn ich später $data = $request->get('user', []);
bekomme, bin ich sicher, dass nur Felder darin erlaubt sind.
Ist dies in FormRequest möglich?
P.S. Ich kenne $request->only(['field1', 'field2', 'field3'])
Weg, aber wenn ich die Felder in SignupRequest extends FormRequest
begrenzen möchte. Weil, wenn ich $request->only([...])
in meinem Code mehrmals benutze, würde ich es mehrmals später ändern müssen. Ich möchte es an einem Ort behalten.
Sie können immer nur $ request-> tun (['field1', 'field2', 'field3']) und dies wird nur ein Array der angegebenen Request-Parameter zurückgeben. –
Vertraue niemals den Feldern, die aus einem Formular kommen, du musst es immer entfernen oder validieren, da @Yasen Slavov sagte, du kannst nur die spezifischen Felder anfordern, in deinem Fall sollte sicherer sein, wenn du die gewünschten Daten anforderst und auf einem neuen speicherst Array und dann den Benutzer erstellen. – Troyer
https://laravel.com/docs/5.4/requests#retrieving-input Scrollen Sie nach unten zu "Abrufen eines Teils der Eingabedaten" - verwenden Sie nur/except, um die Daten abzurufen, die Sie wirklich möchten (Teilmenge der Eingabedaten). – lbartolic