#laravel #nginx #exception #laravel-valet #php-7.4
#laravel #nginx #исключение #laravel-valet #php-7.4
Вопрос:
Я работаю в среде Laravel Valet php7.4 над приложением Laravel 7.4. С помощью этого я создал запрос формы, который обновляет биографию пользователя со следующей проверкой: 'bio' => ['nullable', 'max:255']
Всякий раз, когда я ввожу огромное количество символов, мой локальный сервер (Nginx), похоже, рушится, и Laravel не исправляет ошибку путем проверки. Я получал ошибки Valet 502 Bad Gateway, которые я исправил, добавив это в конфигурацию valet:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
Теперь 502 ошибки исчезли, но ошибка запроса по-прежнему не Laravel улавливает. Есть идеи, почему?
Редактировать: еще немного информации о части запроса
Форма:
<form
class="form"
method="POST"
action="{{ route('settings.profile.update') }}"
>
{{ csrf_field() }}
{{ method_field('PATCH') }}
<div class="form-group">
<x-input-textarea
label="Bio"
name="bio"
:value="$user->profile->bio"
ref="bio"
/>
</div>
<x-button
class="button--primary"
label="Opslaan"
/>
</form>
Компонент textarea Blade
<div class="form-field">
@isset( $label )
<label class="label" for="{{ $name }}">{{ $label }}</label>
@endif
<textarea
{{ $attributes->merge(['class' => "input input--textarea"]) }}
name="{{ $name }}"
id="{{ $name }}"
placeholder="{{ $placeholder ?? ($label ?? null) }}"
{{ ($required ?? false) ? 'required' : '' }}
{{ isset($autocomplete) ? 'autocomplete=' . $autocomplete : '' }}
>{{ old($name, $value ?? '') }}</textarea>
@if( $errors->has($name) )
<x-input-message
:message="$errors->first($name)"
/>
@elseif( $hint )
<p class="mt-xxsmall text-meta">
{{ $hint }}
</p>
@endif
</div>
Контроллер
public function update(ProfileRequest $request)
{
...// authorization
// job
ProfileUpdateJob::dispatchNow($request, $user);
...// returning stuff
}
Задание на обновление профиля
public function handle()
{
$input = $this->request->validated();
$this->user->profile()->update($input);
}
Комментарии:
1. Можете ли вы поделиться своим действием по обработке формы?
2. Я отредактировал свой оригинальный пост @Unflux
Ответ №1:
У меня также была эта проблема, даже после настройки моей конфигурации nginx. В конце концов, проблема была устранена, когда я сменил свой LOG_CHANNEL
с errorlog
на что-то другое, например daily
(примечание: в нем stack
может быть errorlog
, так что следите за этим). При дальнейшей отладке казалось, что stacktrace, регистрируемый при errorlog
использовании, слишком велик для php, чтобы вернуться обратно в nginx, отсюда и общая ошибка nginx 500. Это может быть устранено путем дальнейшей настройки настроек nginx, но я не смог решить это таким образом.