首先自定义一个 Form:
/**
* @file
* Contains \Drupal\resume\Form\WorkForm.
*/
namespace Drupal\resume\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class workForm extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'resume_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form['employee_name'] = array(
'#type' => 'textfield',
'#title' => t('Employee Name:'),
'#required' => TRUE,
);
$form['employee_mail'] = array(
'#type' => 'email',
'#title' => t('Email ID:'),
'#required' => TRUE,
);
$form['actions']['#type'] = 'actions';
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => $this->t('Register'),
'#button_type' => 'primary',
);
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
drupal_set_message($this->t('@emp_name ,Your application is being submitted!',
array('@emp_name' => $form_state->getValue('employee_name'))));
}
}
然后将这个 Form 添加到 Block 中:
/**
* @file
* Contains \Drupal\article\Plugin\Block\ArticleBlock.
*/
namespace Drupal\article\Plugin\Block;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Form\FormInterface;
/**
* Provides a 'article' block.
*
* @Block(
* id = "article_block",
* admin_label = @Translation("Article block"),
* category = @Translation("Custom article block example")
* )
*/
class ArticleBlock extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
$form = \Drupal::formBuilder()->getForm('Drupal\resume\Form\WorkForm');
return $form;
}
}
最后将这个 Block 添加到对于的 region 就可以了。