Ich habe ein benutzerdefiniertes Feld hinzugefügt, so dass ich mehr Informationen erhalten kann, wenn sich jemand auf der Website anmeldet, aber ich möchte ein Feld auf dem Formular ändern. Ich habe ein Modul erstellt, das eine hook_form_alter Funktion hat, so dass ich den field_first_name des Registrierungsformulars ändern kann. Hier ist der CodeDrupal 7 hook_form_alter und Senden des Formulars
function user_registration_form_alter(&$form, &$form_state, $form_id){
if ($form_id == 'user_register_form'){
$form['field_first_name'] = array(
'#type' => 'textfield',
'#title' => t('First Name'),
'#description' => t('Enter your first name.'),
'#maxlength' => 255,
'#required' => TRUE,
);
}
if (isset($form['actions']['submit'])) {
$form['actions']['submit']['#submit'][] ='user_registration_form_submit';
}
}
Ich habe auch eine Funktion erstellt, die die Formularübergabe behandelt.
Mein Problem ist, dass wenn ich das Formular abschicke und ich die Benutzerdetails überprüfe. Ich finde, dass die Details des Vornamens nicht in der Datenbank existieren oder wenn ich mich als Administrator anmelde und auf den Link "Leute" klicke. Ich finde, dass alle Informationen außer dem Vornamefeld eingereicht werden, das ich zu ändern versuche. Ich habe auch versucht, das Formular ohne die Formular-Senden-Funktion einzureichen, aber es funktioniert immer noch nicht.
und ich die folgende Fehlermeldung erhalten, wenn ich die form_submit Funktion
Notice: Undefined index: value in user_registration_form_submit() (line 37 of /var/www/html/lite/sites/all/modules/user_regestration/user_registration.module).
PDOException: SQLSTATE[HY000]: General error: 1364 Field 'entity_id' doesn't have a default value: INSERT INTO {field_revision_field_first_name} (field_first_name_value) VALUES (:db_insert_placeholder_0); Array ([:db_insert_placeholder_0] =>) in user_registration_form_submit() (line 38 of /var/www/html/lite/sites/all/modules/user_regestration/user_registration.module).
Dies ist Zeile 37 und 38 MY CODE
'field_first_name_value' => $form_state['value']['field_first_name'],
))->execute();
Ich schaffe das Modul auf localhost, bevor ich hinzufügen drücken Sie es auf die Live-Website
Ich hatte einen Tippfehler in Zeile 37 gemacht. Es wird angenommen, dass "Werte" anstelle von "Wert" sind, aber jetzt bekomme ich den folgenden Fehler ....... "PDOException: SQLSTATE [HY000]: Allgemeiner Fehler : 1364 Feld 'entity_id' hat keinen Standardwert: INSERT INTO {field_revision_field_first_name} (field_first_name_value) VALUES (: db_insert_placeholder_0); Array ([: db_insert_placeholder_0] => john) in user_registration_form_submit() (Zeile 38 von/var/www /html/lite/sites/all/modules/user_regestration/user_registration.module) " –