在drupal 8中以自定义形式显示结果

时间:2019-03-07 12:25:07

标签: search drupal drupal-8

我已经从表单API创建了自定义表单,我想从数据库中获取记录并在提交后显示在表单下方。

我尝试了很少的参考,但都没有成功。这是我的代码

 public function submitForm(array &$form, FormStateInterface $form_state)     {
   $terms = db_query("select name from taxonomy_term_field_data where vid =   'category'");
$termsData = $terms->fetchAll();
$form_state->setRebuild();
$form_state->setStorage= $termsData;
$output = '';
foreach($termsData as $d){
    $output .= $d->name;
}
$form_state->setStorage= $output;
 return $output;
}

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

如果您想使用db_select,请使用以下代码段

public function submitForm(array &$form, FormStateInterface $form_state) {
    $db = \Drupal::database();
    $terms = $db->select('taxonomy_term_field_data','tfd')->fields('tfd')->condition('vid','category')->execute();

    $termsData = $terms->fetchAll();
    $form_state->setRebuild();
    $form_state->setStorage= $termsData;
    $output = '';
    foreach($termsData as $d){
        $output .= $d->name;
    }
    $form_state->setStorage= $output;
     return $output;
}

但是我建议使用Entity API。有关更多信息,请查看Drupal Entity API on Drupal 8 Drupal Entity Cheat Sheet

让我知道它是否对您不起作用。