0

次のようなエンティティがあります

    .
.
.
    /**
     * @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;
}

これらの値にアクセスしようとすると、結合列エラーが発生します。

私は使用しています:

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

これは私が遭遇したため、私にとって少し混乱しています:

クラス「Doctrine\ORM\PersistentCollection」でメソッド「getId」を呼び出そうとしました。500 内部サーバー エラー - UndefinedMethodException

私は過去に特定の時間にこれを行いました。また、{{ item.stock.id }} を使用して小枝の在庫値にアクセスすることもできます ...

私は何を間違っていますか??

4

1 に答える 1

1

$stock変数は であるため、要素を抽出する前に、またはのようなものを試して構造を確認する必要がDoctrine\Common\Collections\ArrayCollectionあります。$item->getStock()->getId()$item->getStock()->first()->getId());var_dump($item->getStock()

于 2015-12-28T15:10:03.177 に答える