如何在Drupal 8实体中创建隐藏类型字段
我正在使用Drupal8,我有一个实体,我想在实体表单中添加一个隐藏类型字段。如何添加隐藏字段类型?如下如何在Drupal 8实体中创建隐藏类型字段,drupal,drupal-8,Drupal,Drupal 8,我正在使用Drupal8,我有一个实体,我想在实体表单中添加一个隐藏类型字段。如何添加隐藏字段类型?如下 <form> <input type='hidden' name='my_hidden' /> </form> 如果仅使用UI,则可以在管理表单显示中禁用字段的显示。但我假设你要的是你自己的编码表格。。。就是这样, $form['my_hidden'] = array( '#type' => 'hidden', '#valu
<form>
<input type='hidden' name='my_hidden' />
</form>
如果仅使用UI,则可以在管理表单显示中禁用字段的显示。但我假设你要的是你自己的编码表格。。。就是这样,
$form['my_hidden'] = array(
'#type' => 'hidden',
'#value' => $my_hidden_value,
);
如果仅使用UI,则可以在管理表单显示中禁用字段的显示。但我假设你要的是你自己的编码表格。。。就是这样,
$form['my_hidden'] = array(
'#type' => 'hidden',
'#value' => $my_hidden_value,
);
在Drupal8实体表单中隐藏字段有两个步骤 如果要隐藏现有字段,可以修改表单并根据需要更新该字段 $form['your_field_name']['widget'][0]['value']['type']='hidden' 您可以使用并通过启用此模块,为实体类型的“管理表单显示”对话框中的字段选择“隐藏字段”小部件
在Drupal8实体表单中隐藏字段有两个步骤 如果要隐藏现有字段,可以修改表单并根据需要更新该字段 $form['your_field_name']['widget'][0]['value']['type']='hidden' 您可以使用并通过启用此模块,为实体类型的“管理表单显示”对话框中的字段选择“隐藏字段”小部件 您可以尝试以下方法:
public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
{
$fields = parent::baseFieldDefinitions($entity_type);
$fields['id'] = BaseFieldDefinition::create('integer')
->setLabel(t('ID'))
->setDescription(t('The ID of the Timeslot entity.'))
->setReadOnly(TRUE)
->setDisplayOptions('form', array(
'type' => 'hidden',
'weight' => -5,
);
return $fields;
}
您可以尝试以下方法:
public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
{
$fields = parent::baseFieldDefinitions($entity_type);
$fields['id'] = BaseFieldDefinition::create('integer')
->setLabel(t('ID'))
->setDescription(t('The ID of the Timeslot entity.'))
->setReadOnly(TRUE)
->setDisplayOptions('form', array(
'type' => 'hidden',
'weight' => -5,
);
return $fields;
}
您可以像定义任何其他字段一样创建要隐藏的字段,然后在实体表单集的buildForm方法中执行以下操作
$form['field_name']['widget'][0]['value']['#type'] = 'hidden';
这将使字段成为隐藏字段您可以像定义任何其他字段一样创建要隐藏的字段,然后在实体表单集的buildForm方法中执行以下操作
$form['field_name']['widget'][0]['value']['#type'] = 'hidden';
这将使该字段成为隐藏字段在表单元素数组中添加'access'=>FALSE。在表单元素数组中添加'access'=>FALSE。谢谢@Arioch,很抱歉我忘了提到drupal版本,我正在使用drupal 8。我还更新了我的问题。我只使用Drupal8。你能告诉我是谁生成了你的表单吗?所以你必须做Satyam Bhardwaz给出的第一个解决方案。但这意味着您将使用这样的钩子形式:无需更改钩子,我的代码工作是:$form['price']=array'type'=>'hidden'、'attributes'=>array'id'=>'price'、'default\u value'=>$session\u price;好的,这是默认值,而不是我认为的值。谢谢@Arioch,很抱歉我忘了提到drupal版本,我使用的是drupal 8。我还更新了我的问题。我只使用Drupal8。你能告诉我是谁生成了你的表单吗?所以你必须做Satyam Bhardwaz给出的第一个解决方案。但这意味着您将使用这样的钩子形式:无需更改钩子,我的代码工作是:$form['price']=array'type'=>'hidden'、'attributes'=>array'id'=>'price'、'default\u value'=>$session\u price;好的,所以它是默认值,不像我想的那样。我尝试了这个方法,但是它从表单中隐藏了字段,或者没有在表单中创建字段。它应该只隐藏字段,因为在显示表单时,您告诉我您希望此字段为type=hidden。你试过了,但它根本没有创建字段?Arioch,谢谢你的帮助和时间。是的,它根本不创建字段,我认为隐藏意味着不在表单中呈现字段。我尝试过这样做,但它从表单中隐藏字段或不在表单中创建字段。它应该只隐藏字段,因为在显示表单时,您告诉我您希望此字段为type=hidden。你试过了,但它根本没有创建字段?Arioch,谢谢你的帮助和时间。是的,它根本不创建字段,我认为隐藏意味着不在表单中渲染字段。