Задать вопрос
@Kerm

Почему добавленного параметра через $this->request->set() нет при выводе $request->validated()?

class ApiTicketController extends Controller
{
    public function store(StoreRequest $request): TicketResource
    {
            $validated = $request->validated();
    }
}


class StoreRequest extends FormRequest
{
    /**
     * Prepare the data for validation.
     */
    protected function prepareForValidation(): void
    {
        $this->request->set('factory_id', $this->request->get('factory_id') ?? $this->user()->factory_id ?? 1);
    }

/**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules(): array
    {
        return [
            'factory_id' => ['nullable', 'integer', 'exists:factories,id'],
        ]
    }
}


В store() если посмотреть дамп request там есть добавленный параметр, factory_id, но после $request->validated() он пропадает, в БД точно есть запись с идентификатором 1 и под условия валидации этот параметр попадает.
  • Вопрос задан
  • 29 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Может так?
protected function prepareForValidation(): void
    {
        $this->merge([
            'factory_id' => $this->request->get('factory_id') ?? $this->user()->factory_id ?? 1,
        ]);
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы