ldc-legaulois/app/Http/Requests/Club/Favorite/UpdateFavoriteRequest.php
2024-09-13 15:46:08 +02:00

73 lines
1.9 KiB
PHP

<?php
namespace App\Http\Requests\Club\Favorite;
use App\Traits\Requests\HasPicture;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Schema;
class UpdateFavoriteRequest extends FormRequest
{
use HasPicture;
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
public function authorize(): bool
{
return Auth::guard('club')->check();
}
/**
* Prepare the data for validation.
*
* @return void
*/
protected function prepareForValidation(): void
{
$this->merge([
'customer' => intval($this->customer),
'model' => intval($this->model),
'class' => $this->class,
]);
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
'customer' => 'required|integer|exists:customers,id',
'model' => 'required|integer|exists:' . $this->class . ',id',
'class' => [
'required',
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed
function ($attribute, $value, $fail) {
if (!Schema::hasTable($value)) {
$fail("La table '$value' n'existe pas dans la base de données.");
}
},
],
];
}
/**
* Get custom attributes for validator errors.
*
* @return array
*/
public function attributes(): array
{
return [
'customer' => trans('validation.custom.label'),
'model' => trans('validation.custom.model'),
'class' => trans('validation.custom.class'),
];
}
}