我有一個問題,我恐怕我失去了一些愚蠢的東西。但我正在努力尋找類似的問題,看看我失蹤了。學說父母,孩子的關係水化
無論如何,我有一個產品實體:
<?php
class Product {
private $productid;
private $name;
/**
* @ORM\ManyToOne(targetEntity="MyNamespace\CategoryBundle\Entity\Category")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="categoryid", referencedColumnName="categoryid")
* })
*/
private $category;
public function getCategoryPath()
{
$category = $this->category;
$items = array($category);
var_dump($category->getParent());
while (null !== $category->getParent()) {
$category = $category->getParent();
$items[] = $category;
}
return $items;
}
}
class Category {
private $categoryid;
private $name;
/**
* @var \Category
*
* @ORM\ManyToOne(targetEntity="MyNamespace\CategoryBundle\Entity\Category")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="parentid", referencedColumnName="categoryid")
* })
*/
private $parent;
public function getParent()
{
return $this->parent;
}
}
?>
我嘗試:
<?php
$product = $entityManager->find('MyNamespaceProductBundle:Product', 10);
$categories = $product->getCategoryPath();
?>
的問題是,該類別陣列只包含直接鏈接的類別。它看起來似乎沒有提供父項,所以$ category-> getParent()將始終返回null,如果我查看mysql-general日誌,我沒有看到爲父類別引發的查詢。
我在做什麼錯?
剛剛對您的示例進行了測試。這工作非常好。不知道你的數據是怎麼樣的,在這個特定情況下是否有對父類別的引用?也不知道爲什麼在Product類中添加categoryPath? – busypeoples