Настройка формы symfony, если поля формы добавляются через цикл - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю форму, подобную этой:

foreach ($users as $user) {
    $builder->add('user_' . $user->getId(), NumberType::class, [
       'label' => $user->__toString(),
       'required' => false,
       'mapped' => false,
       'constraints' => [...],
    ]);
}

В ветке я хочу отобразить форму в таблице:

<tbody>
    {% for user in users %}
    {% set userId = 'user_' ~ user.getID() %}
        <tr>
            <td>{{ form_label(form.userId) }}</td>
            <td>
                {{ form_widget(form.userId) }}
            </td>
        </tr>
    {% endfor %}
 </tbody>

, но получаю ошибку:

Ни свойство "userId", ни один из методов "userId ()", "getuserId ()" / "isuserId ()" или "__call ()" не существуют и не имеют доступа publi c в классе " Symfony \ Component \ Form \ FormView ".

Как можно go решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

просто l oop форма в ветке должна быть в порядке.

Я думаю, что это может помочь вам (но не проверено)

<tbody>
{% for user in form %}
    <tr>
        <td>{{ form_label(user) }}</td>
        <td>{{ form_widget(user) }}</td>
    </tr>
{% endfor %}

0 голосов
/ 30 апреля 2020

Я использовал атрибут , чтобы решить мою проблему:

<tbody>
    {% for user in users %}
    {% set userId = 'user_' ~ user.getID() %}
        <tr>
            <td>{{ form_label(attribute(form, (userId) )) }}</td>
            <td>
                {{ form_widget(attribute(form, (userId) )) }}
            </td>
        </tr>
    {% endfor %}
</tbody>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...