我如何使用与 Doctrine 的关系?

我正在一个网站上工作来存储系列。


我的数据库包含一个程序表和一个类别表。类别表有一个ID和一个name。


Programs 表包含有关此程序的所有信息以及与之关联的类别 ID。


我有一个/category/$categoryName功能。


我想通过user-specified $categoryName,显示该类别中的所有程序。


public function category(string $categoryName):Response{

    $categoryInfos = $this->getDoctrine()

        ->getRepository(Category::class)

        ->findOneByName($categoryName);


    $categoryID = $categoryInfos['id'];

给我 ->


“不能将 App\Entity\Category 类型的对象用作数组”


一旦我有了category ID,我就可以显示属于该类别的所有程序,但是


1)我无法取回ID


2)我想知道是否有更简单的命令来做我想做的事情。


拉风的咖菲猫
浏览 80回答 2
2回答

12345678_0001

您的结果是一个数组,因此要访问 id,首先您需要访问数组的第一个元素,然后您才能访问 id:$categoryID = $categoryInfos[0]['id'];如果你知道你会得到一个唯一的结果,那么你可以使用 setMaxResult:$categoryInfos = $this->getDoctrine()     ->getRepository(Category::class)     ->findByName($categoryName)     ->setMaxResult(1);结果必须是这样的:object(App\Entity\Category)#501 (2) { ["id":"App\Entity\Category":private]=> int(1) ["name":"App\Entity\Category":private]=> string(7) "Horreur" }最后你可以使用你自己的代码来访问 id:$categoryID = $categoryInfos['id'];如果您仍然无法访问 id,也许 id 是私有属性,您可以使用getter函数,访问 id,使用getId()或名称使用getName()等。$categoryID = $categoryInfos->getId();

胡说叔叔

/** * @Route("/category/{categoryName}", name="category") */public function category(string $categoryName): Response{    $categoryInfos = $this->getDoctrine()        ->getRepository(Category::class)        ->findOneByName($categoryName);    $categoryInfos->getId();    return $this->render('home.html.twig');}嗯,就是这样。
打开App,查看更多内容
随时随地看视频慕课网APP