Мне нужно изменить значение моего параметра запроса, как это.
$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
Используйте merge()
:
$request->merge([
'user_id' => $modified_user_id_here,
]);
Так просто! Нет необходимости переносить весь $request->all()
в другую переменную.
Если вам нужно настроить запрос
$data = $request->all();
Вы можете передать имя поля и значение
$data['product_ref_code'] = 1650;
и, наконец, передать новый запрос
$last = Product::create($data);
Это работает для меня
$request = new Request();
$request->headers->set('content-type', 'application/json');
$request->initialize(['yourParam' => 2]);
проверить вывод
$queryParams = $request->query();
dd($queryParams['yourParam']); // 2
Я думаю, что это лучший способ ввести ваше значение и ключ в текущем экземпляре запроса
$requestData['price'] = $price;
Если вы используете пользовательский запрос для проверки, для замены данных для проверки или для установки данных по умолчанию (для флажков или других), используйте метод переопределения prepareForValidation().
Пространство имен App\Http\Requests\Admin\Category;
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'),
]);
}
}
Надеюсь, кому-нибудь эта информация пригодится.