Как прикрепить к форме випадающий список терминов таксономии?

Главные вкладки

Комментарии

Аватар пользователя igormarthinovsky igormarthinovsky 19 августа 2016 в 10:49

Есть форма для создания записи, запись класифицируется за несколькими параметрами таксономиями.

<?php
$form
['order_subject'] = array (
      
'#type' => 'select',
      
'#title' => 'Subject order',
      
'#options' => $options,
    );
?>

как вместо $options подставить значения тернимов таксономии?

Аватар пользователя igormarthinovsky igormarthinovsky 19 августа 2016 в 11:17

Извините! Подскажите пожалуста што я делаю не так...

<?php
$vid 
2;
$terms taxonomy_get_tree($vid);
$options = array();
foreach(
$terms as $term){
  
$options[$term->tid] = $term->name;
}

  
    

$form['order_subject'] = array (
      
'#type' => 'select',
      
'#title' => 'Subject order',
      
'#options' => $options,
    );
?>

Ошибка:
Fatal error: Call to undefined function Drupal\order_form\Form\taxonomy_get_tree()

Может ето просто не работает для Drupal 8

Аватар пользователя dgastudio dgastudio 19 августа 2016 в 11:20

тьфу, у вас 8ка

<?php
$terms 
= \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid$parent$max_depth$load_entities);

$options = array();
foreach(
$terms as $term){
  
$options[$term->tid] = $term->name;
}
?>
Аватар пользователя igormarthinovsky igormarthinovsky 19 августа 2016 в 11:54
<?php
$vid 
3;
$parent 0;
$max_depth NULL;
$load_entities TRUE;     
$terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid$parent$max_depth$load_entities);
$options = array();
foreach(
$terms as $term){
  
$options[$term->tid] = $term->name;
}

  
    

$form['order_subject'] = array (
      
'#type' => 'select',
      
'#title' => 'Subject',
      
'#options' => $options,
    );
?>

Не работает(

Аватар пользователя igormarthinovsky igormarthinovsky 22 августа 2016 в 13:47

Работает! Нужно в переменную $vid задать машинное имя словаря
Пример:

<?php
$vid 
'subject';
$parent 0;
$max_depth NULL;
$load_entities TRUE;     
$terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid$parent$max_depth$load_entities);
$options = array();
foreach(
$terms as $term){
  
$options[$term->tid] = $term->name;
}
  
    
$form['order_subject'] = array (
      
'#type' => 'select',
      
'#title' => 'Subject',
      
'#options' => $options,
    );
?>