繁体   English   中英

键为“0, 1”的数组的键“”不存在

[英]Key "" for array with keys "0, 1" does not exist

我有这个简单的问题,但由于我是初学者,我需要帮助,所以提前谢谢你

我有一个 class campagne 和一个 class groupe,两者之间有一个多对多关系,它自动添加了一个包含它们的 ID 的 campagne-groupe 表

现在我试图在表格中显示每个创建的“campagne”的名称以及与之关联的“groupe”,但我收到此错误:

键为“0, 1”的数组的键“”不存在。

运动控制器:

  public function index()
{
    $campagne= $this->getDoctrine()->getRepository(Campagne::class)->findAll();
 //   return $this->render('campagne/index.html.twig',['campagne'=> $campagne]);

    return $this->render(
        'campagne/index.html.twig',
        array('campagne'=> $campagne )
   );
          }
 

活动类型:

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('Nom')
       
        ->add('EmailExpediteur')
        ->add('NomExpediteur')
        ->add('Message',TextareaType::class)
         ->add('campagnes')
         ->add('envoyer', SubmitType::class)

twig:

                                {% for camp in campagne %}

                                    <tr>
                                        <td>
                                            {{ camp.Nom }}
                                        </td>
                                    
                                        <td>

                                            {% for camp in campagne.campagnes %}
                                                {{ campagne.campagnes }}
                                            {% endfor %}
                                            
                                        </td>
                                        

我试过 {{ dump(campagne) }} 我得到了这个:

 array:2 [▼
  0 => App\Entity\Campagne {#620 ▼
    -id: 33
    -Nom: "camp1"
    -EmailExpediteur: "expmail@gmail.com"
    -NomExpediteur: "amani"
    -Message: "bla"
    -campagnes: Doctrine\ORM\PersistentCollection {#683 ▼
      -snapshot: []
      -owner: App\Entity\Campagne {#620}
      -association: array:20 [ …20]
      -em: Doctrine\ORM\EntityManager {#431 …11}
      -backRefFieldName: "relation1"
      -typeClass: Doctrine\ORM\Mapping\ClassMetadata {#623 …}
      -isDirty: false
      #collection: Doctrine\Common\Collections\ArrayCollection {#617 ▼
        -elements: []
      }
      #initialized: false
    }
  

你给了我们 3 块代码。 第一个,从你的 controller 是正确的。 第二个是表单类型,但我在这里看不到它的任何用途。 为什么要与我们分享? 它在您的模板中使用吗? 第三个是你的模板,我猜它会抛出异常。 它不完整,但我至少可以看出一件事是错误的:

{% for camp in campagne %}
    <tr>
        <td>
            {{ camp.Nom }}
        </td>
        <td>
            // Big warnings here
            {% for camp in campagne.campagnes %}
                {{ campagne.campagnes }}
            {% endfor %}
        </td>
    // I guess the end is something like this:
        <td>
            ...
        </td>
    </tr>
{% endfor %}

最大的警告是:

  • 您正在覆盖在第一个循环中定义的camp
  • 您在第二个循环中没有使用camp,而是使用campagne

所以我猜你的警告来自这一行: {% for camp in campagne.campagnes %}应该替换为:

{% for camp in campagne %}
    <tr>
        <td>
            {{ camp.Nom }}
        </td>
        <td>
            // Big warnings here
            {% for insidersCampage in camp.campagnes %}
                {{ insidersCampage.Nom}}
            {% endfor %}
        </td>
        <td>
            ...
        </td>
    </tr>
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM