2017-01-23 43 views
0

我想在自定义块中有一个字段link。这里是我的代码来做到这一点:以Drupal 8块的形式添加字段链接

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; 
} 

现在,当我在管理/结构/块进入/管理/ myblock,我可以看到我key 1场。 key 2未呈现。如果我改变任何其他类型(textfield,textarea,file_managed),我的字段被正确渲染。 默认链接模块已启用。

链接字段类型仅适用于节点形式吗? 我能理解为什么。

回答

2

看看Link这个课。您需要指定#url属性:

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

它直接呈现链接而不是链接窗口小部件窗体。 –

+0

然后改用''#type'=>'url'' –