【问题标题】:Drupal 8 Abstract method error when building a simple form构建简单表单时的Drupal 8抽象方法错误
【发布时间】:2018-01-03 03:52:35
【问题描述】:

我是 Drupal 的新手,我想构建一个简单的表单。 我收到此错误:

致命错误:Drupal\medical\Form\LoginForm 类包含 1 个抽象方法,因此必须声明为抽象方法或在 C:\xampp\htdocs\Webdevelopment 中实现其余方法 (Drupal\Core\Form\FormInterface::submitForm) \Burst\Drupal_Test\modules\medical\src\Form\LoginForm.php 在第 8 行

代码如下:

<?php

namespace Drupal\medical\Form;

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

class LoginForm extends FormBase {

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

public function buildForm(array $form, FormStateInterface $form_state) {
    $form['username'] = array(
        '#title' => t('Username'),
        '#type' => 'textfield',
        '#required' => TRUE,
      );

      $form['password'] = array(
          '#title' => t('Password'),
          '#type' => 'password',
          '#required' => TRUE,
        );

      $form['submit'] = array(
        '#type' => 'submit',
        '#value' => 'Login',
      );

}

}

此错误的确切含义是什么,我该如何解决?

谢谢:)

【问题讨论】:

    标签: php forms drupal drupal-8


    【解决方案1】:

    在 FormBase 中有一些抽象方法需要在子类中实现,即 LoginForm。这些是验证和提交方法(在您的情况下是 submitForm)。在你的 LoginForm 中写下这些方法,这个错误就会消失

    【讨论】:

    • 我不会说 validateForm() 方法是完全抽象的,因为它是可选的。由于子类必须始终实现或提供抽象方法的定义。
    • 是的,我同意,我只是概括了抽象方法的概念。
    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 2015-09-27
    • 2015-05-10
    • 2012-07-08
    • 2013-12-20
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多