Nginx улавливает ошибки запроса Laravel, или так кажется

#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, но я не смог решить это таким образом.