public function EntityEditFormBlock::build in Entityform block 8
Builds and returns the renderable array for this block plugin.
If a block should not be rendered because it has no content, then this method must also ensure to return no content: it must then only return an empty array, or an empty array with #cache set (with cacheability metadata indicating the circumstances for it being empty).
Return value
array A renderable array representing the content of the block.
Overrides BlockPluginInterface::build
See also
\Drupal\block\BlockViewBuilder
File
- src/
Plugin/ Block/ EntityEditFormBlock.php, line 147
Class
- EntityEditFormBlock
- Provides a block for creating a new content entity.
Namespace
Drupal\entityform_block\Plugin\BlockCode
public function build() {
$values = array();
// Specify selected bundle if the entity has bundles.
if ($this->entityTypeManager
->getDefinition($this->configuration['entity_type'])
->hasKey('bundle')) {
$bundle_key = $this->entityTypeManager
->getDefinition($this->configuration['entity_type'])
->getKey('bundle');
$values = array(
$bundle_key => $this->configuration['bundle'],
);
}
$entity = $this->entityTypeManager
->getStorage($this->configuration['entity_type'])
->create($values);
if ($entity instanceof EntityOwnerInterface) {
$entity
->setOwnerId(\Drupal::currentUser()
->id());
}
$form = $this->entityTypeManager
->getFormObject($this->configuration['entity_type'], 'default')
->setEntity($entity);
return \Drupal::formBuilder()
->getForm($form);
}