2013-10-03 6 views
0

У меня есть три объекта Stock, StockDetail и CatalogHasStock. В CatalogHasStock это отображение у меня есть:Как сопоставить одно отношение через другое отношение в Doctrine2

/** 
* @ORM\ManyToOne(targetEntity="StockBundle\Entity\StockDetail") 
* @ORM\JoinColumns(@ORM\JoinColumn(name="product", referencedColumnName="product"), 
*     @ORM\JoinColumn(name="company", referencedColumnName="company"), 
*     @ORM\JoinColumn(name="stock_detail", referencedColumnName="id"), 
*     @ORM\JoinColumn(name="upc", referencedColumnName="upc"), 
*     @ORM\JoinColumn(name="kcondition", referencedColumnName="kcondition")) 
*/ 
protected $stock; 

Сейчас в StockDetail это отображение:

/** 
    * @ORM\ManyToOne(targetEntity="StockBundle\Entity\Stock", inversedBy="sdetails") 
    * @ORM\JoinColumns(@ORM\JoinColumn(name="product", referencedColumnName="product"), 
    *     @ORM\JoinColumn(name="company", referencedColumnName="company"), 
    *     @ORM\JoinColumn(name="kcondition", referencedColumnName="kcondition")) 
    */ 
    protected $stock; 

Мне нужно вставить значения в CatalogHasStock и я делаю так:

$catalog_has_stock = new CatalogHasStock(); 
$catalog_has_stock->setStock($entityStockDetail); 

Но я получаю эту ошибку:

Notice: Undefined index: product in /var/www/html/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 685

Что не так в части отображения?

ответ

1

Попробуйте использовать этот синтаксис:

* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="product", referencedColumnName="product"), 
* @ORM\JoinColumn(name="company", referencedColumnName="company"), 
* @ORM\JoinColumn(name="kcondition", referencedColumnName="kcondition") 
* }) 

и т.д. Похоже, вы забыли {}

Смежные вопросы