我有一个自定义实体,这取决于用户实体。实际上,即使如此,我仍然认为有必要在用户个人资料表单中显示我的实体表单:
我现在遇到的问题如下:有2个保存按钮。并且,如果还不够好,则用户(下一个)的保存按钮甚至不再起作用,并且白色标签保存按钮仅保存白色标签实体。
将该表单更改为用户表单,如下所示:
function whitelabel_form_user_form_alter(&$form, FormStateInterface $form_state) {
$whitelabel = WhiteLabel::load(1);
$whitelabel_form = \Drupal::service('entity.manager')
->getFormObject('whitelabel', 'default')
->setEntity($whitelabel);
$form['whitelabel'] = array(
'#type' => 'details',
'#title' => t('White label settings'),
'#open' => TRUE,
'form' => \Drupal::formBuilder()->getForm($whitelabel_form),
);
}
我希望改组$whitelabel_form
数组中的某些参数(以前在Drupal 7中使用过),但是该数组很大,无法找到所需的提交按钮和处理程序。
所以问题是,可以做到吗?推荐的方法是什么?
看到这个答案:drupal.stackexchange.com/questions/203405/…–
—
Eyal
谢谢,我实际上早些时候读过这个问题,但是无论我尝试了什么,我都找不到。我来看一下
—
Neograph734 '17
@Eyal,您还知道不需要我覆盖表格的方法吗?我希望保留用户表格原样。
—
Neograph734
我编写了一个自定义模块Entity_reference_form,但维护不够。如果要避免自定义代码,则可能应该使用inline_entity_form。
—
Eyal
@Eyal,我不害怕自定义代码(我正在编写模块:p)。但是在您的示例中,您将创建一个不再是用户表单的多表单。这意味着,每当有人尝试在另一个模块中执行相同的操作时,您总是只会看到3种(或更多种)可用形式中的2种。这就是我的自负。但是,感谢您抽出宝贵时间与我联系。我将在2天后再看一下内联实体表单,但是我愿意接受以某种方式更改它的替代方法。
—
Neograph734