La forma recomendada de escribir la lógica de validación y autorización es poner esa lógica en clases de solicitud separadas. De esta manera, el código de su controlador permanecerá limpio.
Puede crear una clase de solicitud ejecutando php artisan make:request SomeRequest
.
En el rules()
método de cada clase de solicitud, defina sus reglas de validación:
//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
]
];
}
En su controlador escriba su función de ruta así:
// 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.
}
Cada clase de solicitud viene con métodos / ganchos de validación previa y posterior que se pueden personalizar según la lógica empresarial y casos especiales para modificar el comportamiento normal de la clase de solicitud.
Puede crear clases de solicitud principal para tipos similares de solicitudes (por ejemplo, web
y api
) solicitudes y luego encapsular alguna lógica de solicitud común en estas clases principales.
$request->validate([...])
. Se generará una excepción si los datos no pasan la validación.