Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如何仅显示特定行的数据_Symfony_Doctrine_Twig - Fatal编程技术网

Symfony 如何仅显示特定行的数据

Symfony 如何仅显示特定行的数据,symfony,doctrine,twig,Symfony,Doctrine,Twig,我正在使用SYMPHONY和TWIG模板 我做了一个表格,其中包含的信息属于人名,出生日期,城市等 我想要的是: 所有居住在城市A的人似乎都是管理城市A的模板 所有居住在城市B的人都去管理城市B的模板 这是我的代码: /** * @Route("/infoProspect", name="user_infoProspects", methods={"GET","POST"}) */ public function g

我正在使用SYMPHONY和TWIG模板

我做了一个表格,其中包含的信息属于人名,出生日期,城市等

我想要的是:

所有居住在城市A的人似乎都是管理城市A的模板 所有居住在城市B的人都去管理城市B的模板 这是我的代码:

/**
* @Route("/infoProspect", name="user_infoProspects", methods={"GET","POST"})
*/
public function getInfo(ProspectRepository $prospectRepository,AgencyRepository $CityRepository,AgencyRepository $CityRepository  ): Response
{
    $prospect = new Prospect();
    return $this->render('user/_infoProspect.html.twig', [
            'prospects' => $prospectRepository->findOneByCity(''),
            'agency' => $AgencyRepository->findOneByCity(''),
            'city' => $cityRepository->findOneByCity('Vern'),
        ]
    );
}
AgencyRepository包含城市标识和用户标识。 因此,选择城市A的人的信息将转到根据其用户id仅管理城市A的代理模板

我的模板上的示例: 我这里只需要名为“雷恩”的城市,而不是名为弗恩的城市


如果你需要更多的信息,请问我。谢谢。

为了让您的控制器知道要使用哪个城镇,您可以使用@Entity之类的参数转换器。以下是一些适合您的情况的代码:

/**
* @Route("infoprospect/{id_city}", name="info_prospect")
* @Entity("city", expr="repository.find(id_city)") // <- here the conversion from id_city to a hydrated doctrine entity
**/
public function getInfo(City $city, ProspectRepository $prospectRepository, AgencyRepository $AgencyRepository, CityRepository $CityRepository)
{
    // then find the people related to your city
    // if you dump city here, you will see the parameter converter found the one matching city_id
    $peopleOfCity = $city->getPeople();

    // and finally pass the people and other info to your template
    return $this->render('user/_infoProspect.html.twig', [
        'prospects' => $prospectRepository->findOneByCity(''),
        'agency' => $AgencyRepository->findOneByCity(''),
        'city' => $cityRepository->findOneByCity('Vern'),
        "people" => $peopleOfCity
    ]);
}

有关@Entity和参数转换的更多信息:

我在添加{id_city}时发现@ParamConverter注释未找到错误App\Entity\User对象。变量id_city在@Route和@Entity注释中必须具有相同的名称,变量city在@Entity注释和控制器函数声明$city中必须具有相同的名称。这正是我所做的,几乎是复制和粘贴。您的错误很奇怪,因为$city是city的一个实例,您的错误是找不到用户实例。@Entity注释使用链接到实体类的存储库。您还必须检查URL的生成是否提供了有效的城市id;更多信息请点击这里->在我的用户控制器中创建我的模板infoProspect可能不是一个好主意。为什么Prospect和代理在存储库功能中没有Vern?如果存储库只返回所要求的城镇,这不会解决您的问题吗?