Symfony ArrayCollection代替实体

Symfony ArrayCollection代替实体,symfony,twig,Symfony,Twig,我有一个函数,允许我从表单检索数据: public function selectPlayers(Request $request): Response { $form = $this->createFormBuilder() ->add('joueur', EntityType::class, [ 'class' => Joueur::class, 'choice_label' =>

我有一个函数,允许我从表单检索数据:

public function selectPlayers(Request $request): Response
{
    $form = $this->createFormBuilder()
        ->add('joueur', EntityType::class, [
            'class' => Joueur::class,         
            'choice_label' => 'prenom',
            'expanded' => 'true',
            'multiple' => 'true'
        ])
        ->getForm();

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $joueurs = $form->getData('joueur');

        return $this->render('disputed/test.html.twig', [
            'joueurs' => $joueurs,
        ]);
    }

    return $this->render('disputed/new.html.twig', [
        'form' => $form->createView(),
    ]);
}
然后,我有一个视图,其中a希望显示此数据:

<h1>Disputed index</h1>
    <table class="table">
        <thead>
            <tr>
                <th>Id</th>
                <th>Joueurs</th>
            </tr>
        </thead>
        <tbody>
        {% for joueur in joueurs %}
            <tr>
                <td>{{ joueur.id }}</td>
                <td>{{ joueur.nom }}</td>
            </tr>
        {% else %}
            <tr>
                <td colspan="4">no records found</td>
            </tr>
        {% endfor %}
        </tbody>
    </table>
但我得到了这个错误信息:

属性id和其中一个方法id, getid/isid/hasid或_调用存在并具有公共 类内访问原则\Common\Collections\ArrayCollection


我知道我得到的是ArrayCollection,而不是实体,但我看不到在哪里可以指定它。

您可以向视图发送ArrayCollection。
尝试在您的视图上循环

这里有一个错误:

$joueurs = $form->getData('joueur');
您正在对整个表单执行getData,它获取整个表单的数据

方法getData不接受任何参数,因此您传递的“jouer”值实际上被忽略。因此,这与您所做的相同:

$joueurs = $form->getData();
我想你想做的是:

$joueurs = $form->get('joueur')->getData();

您的代码没有显示有争议的变量的创建位置并传递给视图,因此很难给您任何提示。抱歉,我发布了错误的视图,我已经在ArraySorry上执行循环了,我发布了错误的视图,我已经在ArrayPerfect上执行循环了!工作就像一种魅力;谢谢