Menggunakan nama input html yang berbeza daripada nama lajur pangkalan data dalam Laravel
P粉818125805
P粉818125805 2024-01-16 12:40:25
0
2
388

Bagaimana saya boleh menggunakan nama input html yang berbeza daripada nama lajur yang saya ingin simpan data input ini

Saya biasanya menggunakan kaedah ini kerana semua nama input html adalah sama dengan lajur pangkalan data:

Model::create($request->all());

Sekarang saya tahu saya boleh menggunakan ini:

Model::create([
'name' => $request->name,
'feild' = > $request=>value,
etc.
]);

Tetapi saya mempunyai banyak nilai dan saya tidak mahu menulisnya berulang kali, jadi adakah cara untuk menggabungkan $request->all() dengan kaedah kedua?

P粉818125805
P粉818125805

membalas semua(2)
P粉627027031

Saya mendapati bahawa fungsi PHP array_merge() boleh digunakan seperti yang ditunjukkan di bawah:

Model::create(array_merge($request->all(),['DB fieldName' => $newValue]));
P粉731977554

Salah satu cara ialah menambah medan menggunakan https://laravel.com/docs/9.x/collections#method-merge merge() dan gunakan https://laravel.com/docs/9.x/ collections #method-only Kembalikan hanya medan yang hendak ditambahkan pada model, atau https://laravel.com/docs/9.x/collections#method-except except() songsang

$request->merge([
  'new_column_name' => $the_value_you_want_to_use,
  'old_column_name' => the_value_you_donot_want
]);
$request->only('new_column_name')

// or

$request->except('old_column_name')
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan