Вопрос:
Мне нужно изменить значение моего параметра запроса, как это.
$request->name = «My Value!»
Я использую этот код, но не работает.
$request->offsetSet(‘img’, $img); Лучший ответ:
Попробуйте:
$requestData = $request->all(); $requestData[‘img’] = $img;
Другой способ сделать это:
$request->merge([‘img’ => $img]);
Благодаря @JoelHinz для этого.
Если вы хотите добавить или перезаписать вложенные данные:
$data[‘some’][‘thing’] = ‘value’; $request->merge($data);
Если вы не введете объект Request $request, вы можете использовать глобальный request() вспомогательный или Request:: фасад вместо $request
Ответ №1
Используйте merge():
$request->merge([ ‘user_id’ => $modified_user_id_here, ]);
Так просто! Нет необходимости переносить весь $request->all() в другую переменную.
Ответ №2
Если вам нужно настроить запрос
$data = $request->all();
Вы можете передать имя поля и значение
$data[‘product_ref_code’] = 1650;
и, наконец, передать новый запрос
$last = Product::create($data); Ответ №3
Это работает для меня
$request = new Request(); $request->headers->set(‘content-type’, ‘application/json’); $request->initialize([‘yourParam’ => 2]);
проверить вывод
$queryParams = $request->query(); dd($queryParams[‘yourParam’]); // 2 Ответ №4
Я думаю, что это лучший способ ввести ваше значение и ключ в текущем экземпляре запроса
$requestData[‘price’] = $price; Ответ №5
Если вы используете пользовательский запрос для проверки, для замены данных для проверки или для установки данных по умолчанию (для флажков или других), используйте метод переопределения prepareForValidation().
Пространство имен AppHttpRequestsAdminCategory;
class CategoryRequest extends AbstractRequest { protected function prepareForValidation() { if (!$this->get(‘url’)) { $this->merge([ ‘url’ => $this->get(‘name’) ]); } $this->merge([ ‘url’ => Str::slug($this->get(‘url’)), ‘active’ => (int)$this->get(‘active’), ]); } }
Надеюсь, кому-нибудь эта информация пригодится.