ldc-legaulois/app/Http/Requests/Bo/SectionPages/UpdateSectionPageRequest.php
2026-06-04 14:20:18 +02:00

76 lines
1.9 KiB
PHP

<?php
namespace App\Http\Requests\Bo\SectionPages;
use App\Http\Requests\Bo\UpdateMiniCrudRequest;
use App\Traits\Requests\HasPicture;
use Illuminate\Support\Facades\Gate;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
class UpdateSectionPageRequest extends UpdateMiniCrudRequest
{
use HasPicture;
protected $modelName = 'sectionPage';
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
public function authorize(): bool
{
return Gate::check('update', $this->route($this->modelName));
}
/**
* Prepare the data for validation.
*
* @return void
*/
protected function prepareForValidation(): void
{
$data = $this->input('data', []);
foreach ($data as $key => $item) {
if (!isset($item['value'])) {
$data[$key] = [
'value' => $item
];
}
}
$this->merge([
'data' => $data
]);
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return array_merge(parent::rules(), [
'visibility' => 'nullable|boolean',
'data' => 'present|array',
'data.*' => 'required|array',
]);
}
protected function failedValidation(Validator $validator)
{
$errors = collect($validator->errors()->all())->join("\n");
session()->flash('error', 'Liste des erreurs :' . "\n" . $errors);
throw new HttpResponseException(
response()->json([
'message' => 'Erreur de validation.',
'errors' => $validator->errors(),
], 422)
);
}
}