Получите OneToMany ‘Child’, чтобы вернуть объект ‘Parent’, если есть связь

Используя приведенный ниже пример доктрины, я хотел бы иметь возможность вернуть все функции при запросе продукта.

Так эффективно selecting all products where feature.product_id = product.id

Но хотелось бы сделать это доктриной объектно-ориентированного пути, если это возможно. Есть ли в доктрине способ сопоставить эти отношения противоположным образом?

<?php
use Doctrine\Common\Collections\ArrayCollection;

/** @Entity **/
class Product
{
// ...
/**
* @OneToMany(targetEntity="Feature", mappedBy="product")
**/
private $features;
// ...

public function __construct() {
$this->features = new ArrayCollection();
}
}

/** @Entity **/
class Feature
{
// ...
/**
* @ManyToOne(targetEntity="Product", inversedBy="features")
* @JoinColumn(name="product_id", referencedColumnName="id")
**/
private $product;
// ...
}

Источник: http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html#one-to-many-bidirectional

Спасибо,

0

Решение

Выбор продукта в этом случае, где product.id = feature.product_id будет возвращать только 1 результат, при условии, что идентификатор таблицы ваших продуктов является ее первичным ключом, автоматически увеличивается. Вы уверены, что не пытаетесь вернуть все функции где feature.product_id == (конкретный product.id)?

Если последний случай,

$features = $em->getRepository('MyBundle:Feature')
->findBy(
array('product_id' => $productId)
);

Где у вас в руках $ productId, уникальное целое число.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]