logo

Palette - Make it Colorful🎨

Palette - Visual Page Builder, no design degree required.

Live Demo Download Palette

滚动
04/10/2025, by Ivan

在 HelloBlock 类中添加以下方法。在本例中,它位于文件 src/Plugin/Block/HelloBlock.php 中。但随着你逐渐以更面向对象 (OOP) 的方式思考,它在文件结构中的物理位置并不像命名空间那样重要。作为一个聪明的面向对象程序员,你会让这两者紧密对齐。不过请注意,命名空间通常与模块文件夹名以及我们之前讨论过的模块机器名非常相似,这一点稍后当你需要以编程方式与模块代码交互时会很重要。

  /**
   * {@inheritdoc}
   */
  public function blockSubmit($form, FormStateInterface $form_state) {
    $this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name');
  }

如果你在表单元素外面包裹了一个 fieldset,那么在调用 getValue() 时需要传递一个数组,而不是仅仅传递字段名。这里 myfieldset 是包裹了 hello_block_name 字段的字段集。

$this->configuration['hello_block_name'] = $form_state->getValue(['myfieldset', 'hello_block_name']);

添加这段代码意味着表单将被处理,并且表单输入会保存到该区块实例的配置中,而不会影响其他区块实例。然而,该区块仍然没有使用这些配置更改的结果。这将在本教程的下一部分中介绍。