Drupal 8 Form将无法加载

时间:2018-07-26 20:46:45

标签: php drupal drupal-8

我在Drupal 8中有一个空表格,看起来像这样:

JobFileUpload/src/Form/JobFileUploadForm.php中:

namespace \Drupal\JobFileUpload\Form;

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

class JobFileUploadForm extends FormBase {
  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'jobfileupload_jobfileuploadform';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function validateForm(array &$form, FormStateInterface $form_state) {
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
  }
}

路由如下:

JobFileUpload.routing.yml中:

JobFileUpload.UploadForm:
  path: '/file/upload/'
  defaults: 
    _title: 'Job File Upload'
    _form: '\Drupal\JobFileUpload\Form\JobFileUploadForm'
  requirements:
    _permission: 'access content'

最后,我在JobFileUpload.info.yml中:

name: Job File Upload
description: Shows a file upload form. 
package: Custom
type: module
core: 8.x

刷新缓存会引发以下错误:

  

PHP致命错误:无法声明类JobFileUploadForm,因为该名称已在第34行的/var/www/html/drupaldev/modules/JobFileUpload/src/Form/JobFileUploadForm.php中使用,...

3 个答案:

答案 0 :(得分:0)

原来,在路径末尾的斜杠是罪魁祸首。删除它,然后它起作用了。

答案 1 :(得分:0)

用以下代码替换您的路由文件代码 JobFileUpload.UploadForm:   路径:“ / file / upload”   默认值:     _title:“作业文件上传”     _form:“ \ Drupal \ JobFileUpload \ Form \ JobFileUploadForm”   要求:     _permission:“访问内容”

或更改表格名称:Ex:JOBUploadForm

答案 2 :(得分:0)

另外命名空间也可能是一个原因:在这种情况下可能是

namespace Drupal\JobFileUpload\Form;

代替

namespace \Drupal\JobFileUpload\Form;