doujing6053 2015-01-27 16:10
浏览 20

如果存在关系,请获取OneToMany“Child”以返回“Parent”对象

Using the doctrine docs example below, I would like to be able to return the all features when querying for a product.

So effectively selecting all products where feature.product_id = product.id

But would like to do this the doctrine object oriented way if possible. Is there any way in doctrine to match these relationships the opposite way?

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

Source: http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html#one-to-many-bidirectional

Thanks,

  • 写回答

1条回答 默认 最新

  • drkj41932 2015-01-27 17:38
    关注

    Selecting a product in this case, where product.id = feature.product_id will only return 1 result, assuming your product table's id is its primary key, auto incremented. Are you sure you're not trying to return all features where feature.product_id == (specific product.id)?

    If the latter is the case,

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

    Where you have the $productId, a unique integer, in hand.

    评论

报告相同问题?

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题