Maison  >  Questions et réponses  >  le corps du texte

Utilisation d'un nom d'entrée HTML différent du nom de colonne de base de données dans Laravel

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粉818125805P粉818125805251 Il y a quelques jours304

répondre à tous(2)je répondrai

  • P粉627027031

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

    répondre
    0
  • P粉731977554

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

    répondre
    0
  • Annulerrépondre