Saya perlu mengubah nilai parameter permintaan saya seperti ini:
$request->name = "My Value!";
Saya menggunakan kode ini tetapi tidak berfungsi:
$request->offsetSet('img', $img);
Saya perlu mengubah nilai parameter permintaan saya seperti ini:
$request->name = "My Value!";
Saya menggunakan kode ini tetapi tidak berfungsi:
$request->offsetSet('img', $img);
Jawaban:
Penggunaan merge()
:
$request->merge([
'user_id' => $modified_user_id_here,
]);
Sederhana! Tidak perlu mentransfer keseluruhan $request->all()
ke variabel lain.
Mencoba untuk:
$requestData = $request->all();
$requestData['img'] = $img;
Cara lain untuk melakukannya:
$request->merge(['img' => $img]);
Terima kasih kepada @JoelHinz untuk ini.
Jika Anda ingin menambah atau menimpa data bertingkat:
$data['some']['thing'] = 'value';
$request->merge($data);
Jika Anda tidak memasukkan Request $request
objek, Anda dapat menggunakan global request()
helper atau \Request::
fasad sebagai gantinya$request
Request
kode sumber L5 dan saya dapat melihat metode ini. Terima kasih.
Jika Anda perlu menyesuaikan permintaan
$data = $request->all();
Anda dapat memberikan nama bidang dan nilainya
$data['product_ref_code'] = 1650;
dan akhirnya lolos permintaan baru
$last = Product::create($data);
Jika Anda perlu memperbarui properti dalam permintaan, saya sarankan Anda untuk menggunakan metode ganti dari kelas Permintaan yang digunakan oleh Laravel
$request->replace(['property to update' => $newValue]);
Jawaban bagus di sini, tetapi saya perlu mengganti nilai dalam permintaan JSON. Setelah sedikit menggali kode, saya menemukan kode berikut. Beri tahu saya jika saya melakukan sesuatu yang bodoh.
$json = $request->json()->all();
$json['field'] = 'new value';
$request->json()->replace($json);
Jika Anda menggunakan permintaan kustom untuk validasi, untuk mengganti data untuk validasi, atau untuk menyetel data default (untuk kotak centang atau lainnya) gunakan metode override 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'),
]);
}
}
Semoga informasi ini bermanfaat bagi seseorang.