リクエストパラメータの値を次のように変更する必要があります。
$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
Request
はL5のソースコードを調べたところ、これらのメソッドを見ることができます。ありがとう。
リクエストをカスタマイズする必要がある場合
$data = $request->all();
フィールドの名前と値を渡すことができます
$data['product_ref_code'] = 1650;
そして最後に新しいリクエストを渡します
$last = Product::create($data);
リクエストのプロパティを更新する必要がある場合は、Laravelが使用するRequestクラスのreplaceメソッドを使用することをお勧めします
$request->replace(['property to update' => $newValue]);
検証、検証のためのデータの置換、またはデフォルトデータの設定(チェックボックスなど)にカスタムリクエストを使用する場合は、オーバーライドメソッドを使用しますprepareForValidation()
。
namespace 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'),
]);
}
}
この情報が誰かに役立つことを願っています。