Как получить первое выпадающее значение как нет

Я получаю нужные параметры из следующего кода, но мне нужно добавить пустую опцию в качестве первого значения возвращаемого массива как '' => 'none', тогда остальные ценности.

function dropdown() {
  return db_select('node', 'n')
    ->condition('n.type', 'abc')
    ->condition('n.status', 1)
    ->fields('n', array('nid', 'title'))
    ->orderBy('n.title', 'ASC')
    ->execute()
    ->fetchAllKeyed();
}

Это, однако, дает только значения из базы данных.

1 ответ

Решение

Вы можете добавить запись перед тем, как вернуть данные:

function dropdown() {
  $data = db_select('node', 'n')
    ->condition('n.type', 'abc')
    ->condition('n.status', 1)
    ->fields('n', array('nid', 'title'))
    ->orderBy('n.title', 'ASC')
    ->execute()
    ->fetchAllKeyed();
  return ['' => 'none'] + $data ;
}

Возможный вывод:

array(463) {
  ['']=>
  string(4) "none"
  [367]=>
  string(7) "Title 1"
  [63]=>
  string(7) "Title 2"
  ...
}

Если для ваших условий нет доступных узлов, он вернет:

array(1) {
  [""]=>
  string(4) "none"
}
Другие вопросы по тегам