Итак, у меня есть запрос формы, в котором есть правила проверки и некоторые сообщения.
Это моя функция в контроллере (вызывается через vue.axios)
public function store(TaskFormRequest $request, TaskService $service): JsonResponse
{
$data = $request->validated();
if (!$task = $service->create($data)) {
return JsonResponse::create(['message' => __('Can\'t create Task')], 400);
}
return JsonResponse::create(
[
'task_id' => $task->id,
'message' => __('Task was successfully added.'),
]
);
}
Работает нормально,за исключением того, что моментальное хранилище вызывается (и $ request считается экземпляром TaskFormRequest), когда данные не проверены, он возвращает JsonResponse «Указанные данные недействительны» в дополнение к сообщениям об ошибках из формы.
Это было бы хорошо, но само сообщение глубоко спрятано в Vendor, и я не могу применить к нему какие-либо переводы, если это не мешает.
Это мой запрос формы:
public function authorize(): bool
{
return $this->user()->role === 'administrator';
}
public function rules(): array
{
return [
'subject' => 'required',
'date' => 'nullable|date_format:Y-m-s',
'user' => 'nullable|exists:users,id',
'task_list_id' => 'required|exists:task_lists,id',
'privacy' => 'array',
];
}
public function messages() {
return [
'subject.required' => __("Task name is empty")
];
}
Я хочу, чтобы все вместе прекратили этот ответ и просто оставили ошибки в форме.Или, по крайней мере, настроить его.
РЕДАКТИРОВАТЬ: Я думаю, что проблема в том, что запрос пуст?Если я введу значение null
по умолчанию в аргументах функции store
, я смогу проверить пустой $ request и вернуть JsonResponse, но тогда он не пройдет нормальный процесс проверки.