翻译者:长风Drupal开发
原文:https://www.drupal.org/docs/8/creating-custom-modules/process-the-block-config-form
在之前的基于Drupal8开发的模块中,添加如下的方法到htlloworld类中,在这个例子中,他的位置在src/Plugin/Block/HelloBlock.php,但是你开始面向对象的思维后,这个文件的物理位置并不重要,反而他的命名空间更重要。如果你是一个精通于面向对象的开发者,你可以很轻松的区分这两者,这实际的案例中,他和Drupal中模块的文件夹的命名非常相似,
/**
* {@inheritdoc}
*/
public function blockSubmit($form, FormStateInterface $form_state) {
$this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name');
}
如果你有一个字段组包裹你的表单元素,你需要传一个数组给getvalue()函数,而不是一个单个的字段值,例如
$this->configuration['hello_block_name'] = $form_state->getValue(array('myfieldset', 'hello_block_name'));
添加上面的代码到Drupal8区块中意味着表单将被操作,表单中的值将被单独为这个区块存储到配置中,与其他区块实例分开,这个区块仍然没有使用到配置的值,这将在下一张中继续将。