Utilisation d'un nom d'entrée HTML différent du nom de colonne de base de données dans Laravel
P粉818125805
P粉818125805 2024-01-16 12:40:25
0
2
377

Comment puis-je utiliser un nom d'entrée HTML différent du nom de colonne dans lequel je souhaite enregistrer ces données d'entrée

J'utilise habituellement cette méthode car tous les noms d'entrée HTML sont égaux aux colonnes de la base de données :

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

Maintenant, je sais que je peux utiliser ceci :

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

Mais j'ai beaucoup de valeurs et je ne veux pas les réécrire encore et encore, alors y a-t-il un moyen de combiner $request->all() avec la deuxième méthode ?

P粉818125805
P粉818125805

répondre à tous(2)
P粉627027031

J'ai trouvé que la fonction PHP array_merge() peut être utilisée comme indiqué ci-dessous :

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

Une solution consiste à ajouter des champs en utilisant https://laravel.com/docs/9.x/collections#method-merge merge() et à utiliser https://laravel.com/docs/9.x/ collections #method-only Renvoie uniquement les champs à ajouter au modèle, ou https://laravel.com/docs/9.x/collections#method-sauf except() inverse

$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')
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal