Appearance
Requests
A StoreRequest
and UpdateRequest
is generated for every module.
They are configured based on the module specification validators.
StoreRequest
The StoreRequest
is used to validate the request data when creating a new entity.
In store requests all required fields are required
, and the optional fiels are nullable
.
If there are any other validators defined in the module specification, they will be added to the request.
php
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class StoreAddressRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'street' => 'required',
'city' => 'required',
'state' => 'nullable',
'postal_code' => 'nullable',
'email' => 'required|email',
];
}
/**
* Handle a failed validation attempt.
*
* @return void
*
* @throws \Illuminate\Http\Exceptions\HttpResponseException
*/
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException(
response()->json(
[
'message' => 'The given data was invalid.',
'errors' => $validator->errors(),
],
422
)
);
}
}
UpdateRequest
The UpdateRequest
is used to validate the request data when updating an entity.
In update requests all fields are sometimes|required
, and the optional fields are nullable
.
If there are any other validators defined in the module specification, they will be added to the request.
php
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
class UpdateAddressRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'street' => 'sometimes|required',
'city' => 'sometimes|required',
'state' => 'nullable',
'postal_code' => 'nullable',
'email' => 'sometimes|required|email',
];
}
/**
* Handle a failed validation attempt.
*
* @return void
*
* @throws \Illuminate\Http\Exceptions\HttpResponseException
*/
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException(
response()->json(
[
'message' => 'The given data was invalid.',
'errors' => $validator->errors(),
],
422
)
);
}
}