Verwenden eines anderen HTML-Eingabenamens als des Datenbankspaltennamens in Laravel
P粉818125805
P粉818125805 2024-01-16 12:40:25
0
2
389

Wie kann ich einen anderen HTML-Eingabenamen als den Spaltennamen verwenden, in dem ich diese Eingabedaten speichern möchte?

Normalerweise verwende ich diese Methode, da alle HTML-Eingabenamen den Datenbankspalten entsprechen:

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

Jetzt weiß ich, dass ich das verwenden kann:

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

Aber ich habe viele Werte und möchte es nicht immer wieder neu schreiben. Gibt es also eine Möglichkeit, $request->all() mit der zweiten Methode zu kombinieren?

P粉818125805
P粉818125805

Antworte allen(2)
P粉627027031

我发现PHP array_merge()函数可以使用如下所示:

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

一种方法是使用 https://laravel.com /docs/9.x/collections#method-merge merge() 添加字段,并使用 https://laravel.com/docs/9.x/collections#method-only 仅返回要添加到模型中的字段,或 https://laravel.com/docs/9.x/collections#method-except 除外() 求逆

$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')
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage