7.4 表单验证
每个表单都可以有一个或多个验证方法来验证提交的表单数据。
1、validateForm
以下是一个简单的表单验证方法,主要检测表单元素的值是否为空且长度大于5。
/**
 * {@inheritdoc}
 */
public function validateForm(array &$form, FormStateInterface $form_state) {
    if (!$form_state->isValueEmpty('company_name')) {
        if (strlen($form_state->getValue('company_name')) <= 5) {
            $form_state->setErrorByName('company_name', t('Company name is less than 5 characters'));
        }
    }
}
- 
	isValueEmpty: 用来验证值是否为空 
- 
	getValue: 获取元素的值 
- 
	setErrorByName: 抛出异常错误,第一个参数是元素名称,第二个参数是错误信息。 
2、多个验证处理器
一个表单可以支持多个验证处理器。所有表单缺省validateForm这个验证器。以下是多个验证器的示例代码:
$form_state->setValidateHandlers([
  ['::validateForm'],
  ['::method1'],
  [$this, 'method2']
]);
注意:::和$this都可以访问当前类中的方法。