2017-01-23 3 views
0

Ich hätte gerne ein Feld link in einem benutzerdefinierten Block. Hier ist mein Code zu tun, dass:Feldverknüpfung in einer Drupal 8-Blockform hinzufügen

public function blockForm($form, FormStateInterface $form_state) 
{ 

    $form['key_1'] = [ 
     '#title' => $this->t('Key 1 label'), 
     '#type' => 'textfield', 
     '#default_value' => '', 
     '#required' => false, 
    ]; 

    $form['key_2'] = [ 
     '#title' => $this->t('key 2 link'), 
     '#type' => 'link', 
    ]; 

    return $form; 
} 

Nun, wenn ich in admin/Struktur/Block gehen/Verwaltung/myblock, kann ich mein key 1 Feld sehen. Die key 2 wird nicht gerendert. Wenn ich den Typ für irgendein anderes ändere (Textfeld, Textfeld, Datei_managed) mein Feld wird richtig gerendert. Das Standard-Link-Modul ist aktiviert.

Ist der Linkfeldtyp nur in Knotenform verwendbar? Ich kann verstehen warum.

Antwort

2

Werfen Sie einen Blick auf die Link Klasse. Sie müssen die #url Eigenschaft angeben:

$form['key_2'] = [ 
    '#title' => $this->t('key 2 link'), 
    '#type' => 'link', 
    '#url' => \Drupal\Core\Url::fromRoute('some.route.name'), 
]; 
+0

Es rendert direkt einen Link nicht ein Link Widget-Formular. –

+0

Dann verwenden Sie stattdessen '' #type '=>' url'' –

Verwandte Themen