Maison > Questions et réponses > le corps du texte
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粉6270270312024-01-17 11:55:32
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粉7319775542024-01-17 09:29:07
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')