drupal8插件開發用到的一些常用函數
//引用表單
\Drupal::formBuilder()->getForm("\Drupal\xxx\Form\xxxx");
//判斷是否登錄的函數
\Drupal::currentUser()->isAuthenticated();
//獲取用戶信息
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
$user->get('mail')->value;
//增加提示語的函數
\Drupal::messenger()->addWarning();
//跳轉函數
$this->redirect('','');
//輸出json
return new JsonResponse();
//模板傳遞的方法,先在.module的文件定義
function xxxx_theme($existing, $type, $theme, $path)
{
return [
'xxxxxx' => [
'variables' => [],
],
'xxxxxx' => [
'variables' => [],
],
]
}
控制器Controller
return array(
'#theme' => 'xxxxx',
)
表單一般由三部分組成
public function buildForm(array $form, FormStateInterface $form_state)
{
//接收參數方法
$pammer = $form_state->getValue("pammer");
$form = array();
$form['summary'] = array(
'#type' => 'textfield',
'#title' => 'Subject <span class="description">(Maximum 128 characters)</span>',
'#required' => true,
'#prefix' => '<div class="field-summary">',
'#suffix' => '</div>',
'#maxlength' => 128,
);
return $form;
}
public function validateForm(array & $form, FormStateInterface $form_state)
{
//提示語的寫法
$form_state->setErrorByName('summary', $this->t('xxx'));
}
public function submitForm(array & $form, FormStateInterface $form_state)
{
//跳轉的寫法
$url = Url::fromRoute('xxx', ['id' =>'']);
return $form_state->setRedirectUrl($url);
}
請關注我們微信公眾號:mw748219