Как изменить значение параметра запроса в laravel

Мне нужно изменить значение моего параметра запроса, как это.

$request->name = "My Value!"

Я использую этот код, но не работает.

$request->offsetSet('img', $img);

Ответ 1

Попробуйте:

$requestData = $request->all();
$requestData['img'] = $img;

Другой способ сделать это:

$request->merge(['img' => $img]);

Благодаря @JoelHinz для этого.

Если вы хотите добавить или перезаписать вложенные данные:

$data['some']['thing'] = 'value';
$request->merge($data);

Если вы не введете объект Request $request, вы можете использовать глобальный request() вспомогательный или \Request:: фасад вместо $request

Ответ 2

Используйте merge():

$request->merge([
    'user_id' => $modified_user_id_here,
]);

Так просто! Нет необходимости переносить весь $request->all() в другую переменную.

Ответ 3

Если вам нужно настроить запрос

$data = $request->all();

Вы можете передать имя поля и значение

$data['product_ref_code'] = 1650;

и, наконец, передать новый запрос

$last = Product::create($data);

Ответ 4

Это работает для меня

$request = new Request();
$request->headers->set('content-type', 'application/json');     
$request->initialize(['yourParam' => 2]);

проверить вывод

$queryParams = $request->query();
dd($queryParams['yourParam']); // 2

Ответ 5

Я думаю, что это лучший способ ввести ваше значение и ключ в текущем экземпляре запроса

$requestData['price'] = $price;

Ответ 6

Если вы используете пользовательский запрос для проверки, для замены данных для проверки или для установки данных по умолчанию (для флажков или других), используйте метод переопределения 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'),
            ]);
        }
}

Надеюсь, кому-нибудь эта информация пригодится.