我已经从表单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;
}
任何帮助都会很棒。
答案 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
让我知道它是否对您不起作用。