symfony 2从manyToOne混淆获得价值

时间:2015-12-28 14:54:57

标签: symfony many-to-one getparameter

我有一个看起来像

的实体
    .
.
.
    /**
     * @ORM\ManyToMany(targetEntity="PrLeadBundle\Entity\Stock")
     * @ORM\JoinColumn(name="stock_id", referencedColumnName="id", nullable=true)
     */
    private $stock;
public function __construct()
{
    $this->stock = new \Doctrine\Common\Collections\ArrayCollection();
}



/**
 * Add stock
 *
 * @param \PrLeadBundle\Entity\Stock $stock
 * @return ValueList
 */
public function addStock(\PrLeadBundle\Entity\Stock $stock)
{
    $this->stock[] = $stock;

    return $this;
}

/**
 * Remove stock
 *
 * @param \PrLeadBundle\Entity\Stock $stock
 */
public function removeStock(\PrLeadBundle\Entity\Stock $stock)
{
    $this->stock->removeElement($stock);
}

/**
 * Get stock
 *
 * @return \Doctrine\Common\Collections\Collection 
 */
public function getStock()
{
    return $this->stock;
}

现在,如果我尝试访问theese值,我会收到Join Column错误。

我正在使用:

  $Values = $entityManager->getRepository('PrLeadBundle:ValueList')->findBy(array('disabled' => '0','exportable'=>'1'), array('title' => 'ASC'));
foreach ($Values as $item){
    var_dump($item->getStock()->getId());
}

这对我来说有点混乱,因为我碰到了:

  

在课堂上尝试调用方法“getId”   “学说\ ORM \ PersistentCollection”。 500内部服务器错误 -   UndefinedMethodException

我在过去的某些时间做过这个问题,我也可以使用{{item.stock.id}}来查看树枝中的股票价值......

我做错了什么?

1 个答案:

答案 0 :(得分:1)

因为$stock变量是Doctrine\Common\Collections\ArrayCollection, 因此,在提取元素之前,您应该尝试使用$item->getStock()->getId()$item->getStock()->first()->getId());之类的内容来代替var_dump($item->getStock()