Die empfohlene Methode zum Schreiben von Validierungs- und Autorisierungslogik besteht darin, diese Logik in separate Anforderungsklassen einzuteilen. Auf diese Weise bleibt Ihr Controller-Code sauber.
Sie können eine Anforderungsklasse durch Ausführen erstellen php artisan make:request SomeRequest
.
rules()
Definieren Sie in der Methode jeder Anforderungsklasse Ihre Validierungsregeln:
//SomeRequest.php
public function rules()
{
return [
"name" => [
'required',
'array', // input must be an array
'min:3' // there must be three members in the array
],
"name.*" => [
'required',
'string', // input must be of type string
'distinct', // members of the array must be unique
'min:3' // each string must have min 3 chars
]
];
}
Schreiben Sie in Ihren Controller Ihre Routenfunktion wie folgt:
// SomeController.php
public function store(SomeRequest $request)
{
// Request is already validated before reaching this point.
// Your controller logic goes here.
}
public function update(SomeRequest $request)
{
// It isn't uncommon for the same validation to be required
// in multiple places in the same controller. A request class
// can be beneficial in this way.
}
Jede Anforderungsklasse verfügt über Hooks / Methoden vor und nach der Validierung, die basierend auf Geschäftslogik und Sonderfällen angepasst werden können, um das normale Verhalten der Anforderungsklasse zu ändern.
Sie können übergeordnete Anforderungsklassen für ähnliche Arten von Anforderungen (z. B. web
und api
) erstellen und dann eine allgemeine Anforderungslogik in diesen übergeordneten Klassen kapseln.
$request->validate([...])
. Eine Ausnahme wird ausgelöst, wenn die Daten die Validierung nicht bestehen.