drupal_set_title无法以模块形式工作

时间:2016-02-08 17:22:23

标签: drupal drupal-modules drupal-8

我正在努力学习Drupal 8.所以现在,我正在“建立”表格。 我创建了一个模块。 INSIDE mymodule \ src \ Form 我有form1.php

namespace Drupal\mymodule\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;

class form1 extends FormBase {

  public function getFormId() {
    return 'myform1';
  }

  public function buildForm(array $form, FormStateInterface $form_state) {

    $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Your name'),
    '#maxlength' => 30,
    );
    $form['Lastname'] = array(
    '#type' => 'textfield',
    '#title' => t('Your lastname'),
    );
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Submit'),
    );
    return $form;
  }

并且工作...... 但是,当我想在页面中添加标题时,在我的情况下并使用

链接到my_module.routing.yml,127.0.0.1 / form1
...
public function buildForm(array $form, FormStateInterface $form_state) {

drupal_set_title(t('This is a Title'));

    $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Your name'),
    '#maxlength' => 30,
    );
...

我收到以下错误:

错误: 致命错误:在第16行的C:\ xampp \ htdocs \ drupalwebsite \ modules \ custom \ mymodule \ src \ Form \ form1.php中调用未定义的函数Drupal \ mymodule \ Form \ drupal_set_title()

第16行是:

drupal_set_title(t('This is a Title'));

问题在于标题。我试图解决它,但我不能。 谁知道为什么? 非常感谢

1 个答案:

答案 0 :(得分:1)

根据https://www.drupal.org/node/2067859,在D8中删除了drupal_set_title()。您是否尝试过该链接中提到的替代方法,如下所示:

$form['#title'] = $this->t('This is a Title');