symfony 键为“0,1,2,3,4”的数组的键“dest_ville”不存在

u4vypkhs  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(122)

在一个项目中,我有一个包含数据的表,一个链接到表单的编辑按钮,我想用表中的数据预先填充表单。
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 %}
dxxyhpgq

dxxyhpgq1#

$expeditionRepository->findAll()返回多个资源的数组,在您的示例中总共为5个(0,1,2,3,4)。这意味着$info包含多个“Expedition”资源。请尝试转储$info并检查您的分析器以查看它包含哪些项!
在newmodify.html.twig中,首先需要循环$info的每个元素,然后才能调用属性,比如dest_ville(假设这是Expedition的属性)。
你需要类似下面的代码。这将显示所有信息结果,所以如果你试图显示一个特定的远征项目,这可能不适合你的用例。所以使用代码作为指导,不要复制粘贴。

{% for item in info %}
    <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="{{ item.dest_ville }}">  
        </div>
    </div>
{% endfor %}

根据您的实现,您可能需要将findAll更改为findfindOneBy,以获得单个结果。类似$info = $expeditionRepository->find($id)的代码也可以实现此功能!它通过提供的ID获取一个Expedition实体,因此您不需要像上面的示例那样在视图中循环。
理论文档应该可以帮助您进一步找到适合您的用例的正确方法。

相关问题