auditionadmin/app/Http/Requests/ClearDrawRequest.php

54 lines
1.4 KiB
PHP

<?php
namespace App\Http\Requests;
use App\Models\Audition;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use function to_route;
class ClearDrawRequest extends FormRequest
{
public function authorize(): true
{
// Return true if the user is authorized to make this request.
// You might want to check if the user is an admin, for example.
return true;
}
public function rules()
{
return [
'audition' => ['required', 'array'],
];
}
public function messages(): array
{
return [
'audition.required' => 'No auditions were selected',
'audition.array' => 'Invalid request format',
];
}
public function withValidator($validator): void
{
$validator->after(function ($validator) {
foreach ($this->input('audition', []) as $auditionId => $value) {
if (! is_numeric($auditionId) || ! Audition::where('id', $auditionId)->exists()) {
$validator->errors()->add('audition', 'One or more invalid auditions were selected');
}
}
});
}
protected function failedValidation(Validator $validator)
{
$msg = $validator->errors()->get('audition')[0];
return to_route('admin.draw.index')->with('error', $msg);
}
}