Drupal Form Api提供了validateForm方法来验证各项表单的值。例如,需要验证用户的姓名是否为空并且需要验证用户填入的姓名是否大于0且小于100。
/**
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
if (strlen($form_state->getValue('name')) == 0) {
$form_state->setErrorByName('name', $this->t('请填写姓名.'));
}
if (intval($form_state->getValue('age')) <= 0 ||
intval($form_state->getValue('age')) >= 100)
{
$form_state->setErrorByName('age', $this->t('年龄不得小于0岁,不能大于100岁.'));
}
}
在以上代码中使用$form_state->getValue('name')
获取的是单个(name
)表单项的值。如果想要同时获取所有表单项的值可以使用$form_state->getValues();
$formFields = $form_state->getValues();
$formData['title'] = $formFields['title'];
$formData['name'] = $formFields['name'];
$formData['age'] = $formFields['age'];
$formData['email'] = $formFields['email'];
