表单
HTML 表单是 Web 应用的重要组件,使用起来很简单,但是要用得好并不容易。
Drupal 把表单抽象起来,在内部处理表单的常见问题,对开发者只开放简单接口,以提高开发效率。
表单的基本用法
我们先看看开发者是如何制作一个表单的。
定义表单
在模块下添加 src/Form/MyForm.php
<?php
namespace Drupal\example0403\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class MyForm extends FormBase {
public function getFormId() {
return 'my_form';
}
public function buildForm(array $form, FormStateInterface $form_state) {
$form['name'] = [
'#type' => 'textfield',
'#title' => '名字'
];
$form['submit'] = [
'#type' => 'submit',
'#value' => '提交'
];
return $form;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$form_values = $form_state->cleanValues()->getValues();
// 打印表单提交结果
foreach ($form_values as $key => $value) \Drupal::messenger()->addMessage("$key : $value");
}
}
表单的渲染,也是使用渲染数组来实现的,在上面的 buildForm
方法中编写表单元素数组,
#type => textfield
和 #type => submit
是由 Drupal Core 提供的可以接受用户输入的 渲染元素
。
它们被称为 表单元素(FormElement)
,
Drupal Core 内建了将近 100 个渲染元素中,有 30 多个是表单元素,
可用于创建表单渲染数组。
为表单提供一个路由
登录后查看完整内容