Вопрос по админке компонента на 2

#1 25 сентября 2015 в 13:31
Добрый день!

Подскажите, для методов
  1. $this->getItemById
  2. и
  3. $this->update
поле первое "id" только с таким значением может быть в базе. Т.е. это ограничение? Т.к. не могу например использовать поле id_tarif как основное ключевое поле, используя вышеуказанные методы.

И в догонку:
как в формах использовать значение не 0,1,2,3 и т.д. в перечеслениях параметров при выпадающем выборе select, а значения свои вносить и как их можно генерировать автоматически из базы данны. Где пример можно посмотреть?

У меня вот так сейчас в форме для админки компонента.
  1.  
  2. new fieldList('type_tarif',array(
  3. 'title' => LANG_ABONENT_TYPE_TARID,
  4. 'items' => array('Интернет','Телефония','Кабельное ТВ','Видеонаблюдение')
  5. )),
  6.  
#2 25 сентября 2015 в 13:38

не могу например использовать

kirkr
Думаю вам подойдет метод
  1. $this->getItemByField
#3 25 сентября 2015 в 14:10
для поля списка используйте генератор, который должен вернуть массив "ключ-значение", где ключом и будет value
для примера:
  1. new fieldList('f_name', array(
  2. 'title' => 'Мой тайтл',
  3. 'generator' => function () {
  4. $model = cmsCore::getModel('users');
  5. $list = $model->get('cms_users');
  6. $items = array();
  7. foreach ($list as $item) {
  8. $items[$item['id']] = $item['nickname'];
  9. }
  10.  
  11. return $items;
  12. },
  13. )),
#4 25 сентября 2015 в 15:20

как в формах использовать значение не 0,1,2,3 и т.д. в перечеслениях параметров при выпадающем выборе select, а значения свои вносить

kirkr
Список
#5 25 сентября 2015 в 19:15
Loadырь,
код выше дает в html такой код:


  1. <option value="0" selected="">Интернет</option>
  2. <option value="1">Телефония</option>
  3. <option value="2">Кабельное ТВ</option>
  4. <option value="3">Видеонаблюдение</option>
А мне надо вот такой:

  1.  
  2. <option value="Интернет" selected="">Интернет</option>
  3. <option value="Телефония">Телефония</option>
  4. <option value="Кабельное ТВ">Кабельное ТВ</option>
  5. <option value="Видеонаблюдение">Видеонаблюдение</option>
#6 25 сентября 2015 в 19:32
kirkr, в место ID (0, 1, 2...) пишите текст
Интернет | Интернет
Телефония | Телефония
#7 25 сентября 2015 в 19:38

в место ID (0, 1, 2...) пишите текст

Evanescence
Нет там такого.

Оформляется форма так:

  1. new fieldList('type_tarif',array(
  2. 'title' => LANG_ABONENT_TYPE_TARID,
  3. 'items' => array('Интернет','Телефония','Кабельное ТВ','Видеонаблюдение')
  4. )),
#8 25 сентября 2015 в 19:52
А что мешает написать так?
  1. new fieldList('type_tarif',array(
  2. 'title' => LANG_ABONENT_TYPE_TARID,
  3. 'items' => array('Интернет' => 'Интернет','Телефония' => 'Телефония','Кабельное ТВ' => 'Кабельное ТВ','Видеонаблюдение' => 'Видеонаблюдение')
  4. )),
#9 25 сентября 2015 в 20:24
Loadырь, стесняюсь предположить, но наверное он хочет тянуть из базы =)

$this->getItemById
и
$this->update

#10 26 сентября 2015 в 05:21

А что мешает написать так?

Loadырь
Вот теперь спасибо =)

стесняюсь предположить, но наверное он хочет тянуть из базы =)

oruchimaru
Это выше уже показали как модель подключаем и вытаскиваем что надо.

Просто на ту документацию что скидывали было разделение через " | "

для поля списка используйте генератор,

Yurik

Спасибо, пригодится в формах!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.