控制器中实体的Drupal 8.6表格

Drupal 8.6 Form from entity in controller

我正在尝试从控制器中的实体创建表单。

这是控制器的代码:

class OutOfOfficeController extends ControllerBase
{
    /**
     * @return array
     */
    public function add()
    {
        $event = $this->entityTypeManager()->getStorage('event')->create(['type' => 'out_of_office']);
        $form  = $this->entityFormBuilder()->getForm($event);
        return $form;
    }
}

这是我得到的错误:

Error: Call to a member function getTranslationFromContext() on null in Drupal\Core\Entity\ContentEntityForm->initFormLangcodes() (line 313 of core/lib/Drupal/Core/Entity/ContentEntityForm.php).

我是不是漏掉了什么?

Event 实体本身存在问题。

Event 实体指的是 EventForm,它有一个覆盖 ContentEntityForm 的构造函数。从 EventForm

中删除 __constructor 后问题得到解决