Rumah > Soal Jawab > teks badan
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粉6270270312024-01-17 11:55:32
Saya mendapati bahawa fungsi PHP array_merge() boleh digunakan seperti yang ditunjukkan di bawah:
Model::create(array_merge($request->all(),['DB fieldName' => $newValue]));
P粉7319775542024-01-17 09:29:07
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')