在一个项目中,我有一个包含数据的表,一个链接到表单的编辑按钮,我想用表中的数据预先填充表单。
newmodif.html.twig
<div id="div_24">
<div class="align-inputs-dest">
<b>Nom :</b>
<input type="text" id="24" class="input_list input_uppercase input_color" maxlength="35" name="dest_nom" value="{{ info.dest_ville }}">
</div>
</div>
在ExpeditionController.php中:
public function newmodif(request $request, int $id = null, EntityManagerInterface $entityManager, ExpeditionRepository $expeditionRepository) : Response
{
$info = $expeditionRepository->findAll();
$pays = $this->paysRepository->findAll();
$user = $this->getUser();
$comptesUtilisateur = $user->getComptes();
$clientUser = $user->getClient();
$clientUse = $user->getEmail();
$array_val = [];
$arr_new_exp[] = $request->request->get('az');
$exp_mail = $entityManager->getRepository(Expedition::class)->findOneBy(['id' => $id]);
return $this->render('pages/expedition/newmodif.html.twig', [
'comptes' => $comptesUtilisateur,
'pays' => $pays,
'clientUser' => $clientUser,
'clientUse' => $clientUse,
'array_val' => $array_val,
'exp_mail' => $exp_mail,
'info' => $info,
]);
}
我想从我的数据库中提取数据与id在网址,但我得到了一个错误:键为“0,1,2,3,4”的数组的键“dest_ville”
实际上,我尝试用不同的方式调用数据,它与同一页面中的另一个字段循环工作:
{% for country in pays %}
<option>{{ country.intitule }}</option>
{% endfor %}
1条答案
按热度按时间dxxyhpgq1#
$expeditionRepository->findAll()
返回多个资源的数组,在您的示例中总共为5个(0,1,2,3,4)。这意味着$info
包含多个“Expedition”资源。请尝试转储$info并检查您的分析器以查看它包含哪些项!在newmodify.html.twig中,首先需要循环$info的每个元素,然后才能调用属性,比如
dest_ville
(假设这是Expedition的属性)。你需要类似下面的代码。这将显示所有信息结果,所以如果你试图显示一个特定的远征项目,这可能不适合你的用例。所以使用代码作为指导,不要复制粘贴。
根据您的实现,您可能需要将
findAll
更改为find
或findOneBy
,以获得单个结果。类似$info = $expeditionRepository->find($id)
的代码也可以实现此功能!它通过提供的ID获取一个Expedition实体,因此您不需要像上面的示例那样在视图中循环。理论文档应该可以帮助您进一步找到适合您的用例的正确方法。