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

Posted

技术标签:

【中文标题】键为“0, 1”的数组的键“”不存在【英文标题】:Key "" for array with keys "0, 1" does not exist 【发布时间】:2021-08-20 03:47:30 【问题描述】:

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

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

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

运动控制器:

  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)

树枝:

                                % 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
    
  

【问题讨论】:

为什么不发布整个应用程序? 【参考方案1】:

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

% 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 %

【讨论】:

以上是关于键为“0, 1”的数组的键“”不存在的主要内容,如果未能解决你的问题,请参考以下文章

redis复习

Redis-基本操作总结

如何检查数组中是不是存在相同的键?

localStorage 区分不存在的键和空值

查找不存在的键时,unordered_map 会返回啥

为啥 Sass `map-get()` 不为不存在的键返回错误?