Ветка Symfony получает значение данных из объекта коллекции - PullRequest
0 голосов
/ 15 марта 2019

Здравствуйте,

при редактировании формы со значениями obj из коллекции в Symfony 4.2, мне нужен идентификатор каждого объекта коллекции для внешнего интерфейса.

ЕслиЯ сбрасываю объект коллекции,

{{ dump(form.vars.data) }}

Я вижу что-то вроде этого:

CollectionObj1 {#3341 ▼
  -id: 21167
  -value1: null
  -value2: 74

Если я теперь хочу получить доступ к идентификатору с помощью

{{ dump(form.vars.data.id) }}

Я получаю следующую ошибку:

Невозможно получить доступ к атрибуту ("id") для пустой переменной.

Может кто-нибудь сказать мне, как я могу получить доступ кid объекта в коллекции?

Большое спасибо заранее

1 Ответ

0 голосов
/ 15 марта 2019

Хорошо, две вещи, которые я не упомянул, ведут к ошибке:

  1. Мой идентификатор не называется идентификатором. Из-за старой базы данных это называется что-то вроде этого: K_RESULTS_ID
  2. Я использую прототипы коллекции symfony: https://symfony.com/doc/current/form/form_collections.html#allowing-new-tags-with-the-prototype и вызываю дамп в соответствующем блоке формы

Первая ошибка состояла в том, что вы должны вызывать такое id-имя без подчеркивания, оно должно называться так:

{{ dump(form.vars.data.KRESULTSID) }}

Вторым было то, что мне нужно проверить, если объект не нулевой, перед его извлечением. Поэтому мне нужно было добавить что-то вроде этого:

{% if form.vars.data is not null %}
    {% set resultId = form.vars.data.KRESULTSID%}
{% else %}

Теперь все работает как положено.

В любом случае, спасибо, @ wp78de, и извините, что не выложили полную правду;)

...