键为“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”的数组的键“”不存在的主要内容,如果未能解决你的问题,请参考以下文章