我正在一個網站上工作來存儲系列。我的數據庫包含一個程序表和一個類別表。類別表有一個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 關注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消