为了账号安全,请及时绑定邮箱和手机立即绑定

我如何使用与 Doctrine 的关系?

我如何使用与 Doctrine 的关系?

PHP
拉风的咖菲猫 2023-04-02 15:04:35
我正在一个网站上工作来存储系列。我的数据库包含一个程序表和一个类别表。类别表有一个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)我无法取回ID2)我想知道是否有更简单的命令来做我想做的事情。
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

您的结果是一个数组,因此要访问 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();


查看完整回答
反对 回复 2023-04-02
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

/**

 * @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');

}

嗯,就是这样。



查看完整回答
反对 回复 2023-04-02
  • 2 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信