Heim > Fragen und Antworten > Hauptteil
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粉6270270312024-01-17 11:55:32
我发现PHP array_merge()函数可以使用如下所示:
Model::create(array_merge($request->all(),['DB fieldName' => $newValue]));
P粉7319775542024-01-17 09:29:07
一种方法是使用 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')