我在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中使用,...
答案 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;