我如何使用与 Doctrine 的关系?
How can I use relation with Doctrine?
我正在开发一个存储系列的网站。
我的数据库包含一个程序 table 和一个类别 table。
类别 table 有一个 ID
和一个 name
.
程序 table 包含有关此程序的所有信息以及与其关联的类别 ID。
我有一个/category/$categoryName
函数。
我想通过 user-specified $categoryName,
显示该类别中的所有程序。
public function category(string $categoryName):Response{
$categoryInfos = $this->getDoctrine()
->getRepository(Category::class)
->findOneByName($categoryName);
$categoryID = $categoryInfos['id'];
给我 ->
"Cannot use object of type App\Entity\Category as array"
一旦我有了 category ID
,我就可以显示属于该类别的所有程序,但是
1) 我无法找回 ID
2) 我想知道是否有更简单的命令来完成我想做的事情。
/**
* @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');
}
嗯,就是这样。
您的结果是一个数组,因此要访问 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是一个private 属性你可以使用getter 函数,为了访问 id,使用 getId() 或者对于名称使用 getName() 等
$categoryID = $categoryInfos->getId();
我正在开发一个存储系列的网站。
我的数据库包含一个程序 table 和一个类别 table。
类别 table 有一个 ID
和一个 name
.
程序 table 包含有关此程序的所有信息以及与其关联的类别 ID。
我有一个/category/$categoryName
函数。
我想通过 user-specified $categoryName,
显示该类别中的所有程序。
public function category(string $categoryName):Response{
$categoryInfos = $this->getDoctrine()
->getRepository(Category::class)
->findOneByName($categoryName);
$categoryID = $categoryInfos['id'];
给我 ->
"Cannot use object of type App\Entity\Category as array"
一旦我有了 category ID
,我就可以显示属于该类别的所有程序,但是
1) 我无法找回 ID
2) 我想知道是否有更简单的命令来完成我想做的事情。
/**
* @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');
}
嗯,就是这样。
您的结果是一个数组,因此要访问 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是一个private 属性你可以使用getter 函数,为了访问 id,使用 getId() 或者对于名称使用 getName() 等
$categoryID = $categoryInfos->getId();