Показать результат ниже пользовательской формы в drupal 8 - PullRequest
1 голос
/ 07 марта 2019

Я создал пользовательскую форму из 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 голосов
/ 07 марта 2019

Если вы хотите использовать 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 на Drupal 8 и Шпаргалка по сущности Drupal

дайте мне знать, если она не работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...