我正在一个网站上工作来存储系列。我的数据库包含一个程序表和一个类别表。类别表有一个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();
胡说叔叔
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');
}
嗯,就是这样。
- 2 回答
- 0 关注
- 79 浏览
添加回答
举报
0/150
提交
取消