cari

Rumah  >  Soal Jawab  >  teks badan

Menggunakan nama input html yang berbeza daripada nama lajur pangkalan data dalam Laravel

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粉818125805P粉818125805317 hari yang lalu385

membalas semua(2)saya akan balas

  • P粉627027031

    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]));

    balas
    0
  • P粉731977554

    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')
    

    balas
    0
  • Batalbalas