Form input vorbefüllen
Eingetragen von congomonster (24)
am 15.08.2016 - 18:00 Uhr in
am 15.08.2016 - 18:00 Uhr in
Hallo,
ich habe mir eine Form gebaut. Wie kriege ich die denn jetzt bei Aufruf schon mal vorausgefüllt?
Ich will die E-Mail Adresse gleich in das Input Feld tun, wenn die Seite aufgerufen wird.
Also was kann ich bei default_value angeben, damit ich die E-Mail Adresse des Benutzers bekomme?
Ich habe ja eine Abfrage an die User e-mail drin, nur leider kann ich es an der default_value Stelle nicht ausgeben.
<?php
// Load the current user.
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
if (\Drupal::currentUser()->isAnonymous()) {
$email_adress = '';
} else {
$email_adress = $user->get('mail')->value;
}
// email adress
$form['customer_email'] = array(
'#type' => 'email',
'#title' => $this->t('Ihre E-Mail Adresse:'),
'#default_value' => ???,
'#required' => true,
);
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
default
am 16.08.2016 - 07:31 Uhr
Moin.
Normalerweise muss da direkt der anzuzeigende Wert rein, in Deinem Fall also
$email_adress
.Wenn das nicht funktioniert, probiere einen einfachen String (z.B.
'#default_value' => 'test',
) und schaue, ob die Variable$email_adress
überhaupt gefüllt ist.PS: Texte in
t()
sind *immer* englisch, da dies die Basis für Übersetzungen ist.hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
halbwegs gelöst
am 16.08.2016 - 10:00 Uhr
Hallo Stefan,
Danke für die Antwort. Ich bin dank deinem Kommentar auf die Lösung gekommen.
Ich habe die if Abfrage außerhalb der buildform function gehabt. Verschiebe ich den Teil in die function
wird das Feld befüllt mit der E-Mail Adresse wenn man angemeldet ist. Nur wenn man nicht angemeldet ist,
bleibt das Feld leer, egal was ich da rein schreibe. Aber das ist erstmal nicht schlimm.
Danke!
Hi, ein anonymer User hat
am 17.08.2016 - 10:32 Uhr
Hi,
ein anonymer User hat kein Email Feld und auch keine Email Adresse,
daher kann dieses auch nicht befüllt werden.
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Ahhh
am 17.08.2016 - 11:04 Uhr
Hallo Robert,
danke für die Erklärung! ;)