xml: <fields...> внутри <fields...>

  • 2 Ответов
  • 157 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн batiskaf

xml: <fields...> внутри <fields...>
« : 04.05.2017, 19:48:32 »
Добрый день. 2 вопроса.

1.
Есть группа полей (в XML) group_1 в которую вложена группа group_1_1 для редактирования определенного вида в админке собственного компонента. Чисто для наглядности:

<fields name="group_1">

   <fields name="group_1_1">
      <field name="field_1_1_1" type="text" label="somelabel 1" />   
      <field name="field_1_1_2" type="text" label="somelabel 2" />   
   </fields>

   <fields name="group_1_2">
      ...
   </fields>

   ...
</fields>

Вопрос: как пробежаться в edit.php по полям из <fields name="group_1_1"> в цикле? $this->form->getGroup('group_1_1') возвращает путой массив, т.е., как я понял, getGroup() для вложенных <fields> не сработает

2.
name поля как массив. Для нагялдности:

<fields name="group_1">

   <field name="field][1" type="text" label="somelabel 1" />   
   <field name="field][2" type="text" label="somelabel 2" />   
   <field name="somefield" type="text" label="somelabel 3" />   
   
</fields>

edit.php:

   foreach ($this->form->getGroup('group_1') as $field)
   {
      echo $field->label;
      echo $field->input;
   }

первое поле получает name='jform[group_1][field][1]'
второе поле получает name='jform[group_1][field][2]'
третье поле получает name='jform[group_1][somefield]'

но в массиве данных $data метода save($data) модели вижу только третье поле. Почему-то первых двух нет.

« Последнее редактирование: 04.05.2017, 20:45:00 от batiskaf »

*

Оффлайн robert

Re: xml: <fields...> внутри <fields...>
« Ответ #1 : 04.05.2017, 23:51:08 »
1.
Код: (php-brief) [Выделить]
$fields = $this->form->getGroup('group_1.group_1_1');2. Так никогда не делал, смысл понятен, но возможны какие-то ограничения в именах, надо посмотреть.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн batiskaf

Re: xml: <fields...> внутри <fields...>
« Ответ #2 : 05.05.2017, 00:41:23 »
1.
Код: (php-brief) [Выделить]
$fields = $this->form->getGroup('group_1.group_1_1');2. Так никогда не делал, смысл понятен, но возможны какие-то ограничения в именах, надо посмотреть.

robert, спасибо Вам огромное, плюсик к репутации поставил)