小编mal*_*rzm的帖子

Doctrine Orm - 搜索嵌入关联

我有一个使用嵌入式关联的资产实体:

/**
 * @ORM\Entity
 */
class Asset
{

....

    /**
     * @ORM\Embedded(class="Money\Money")
     */
   private $code;
Run Code Online (Sandbox Code Playgroud)

我想搜索这个类,我的第一直觉是做这样的事情:

public function findOneByCurrencyCode(string $currencyCode)
{
    $qb = $this->assetRepository->createQueryBuilder('asset');
    $qb->innerJoin('asset.code', 'code')
        ->where('code.currency = :currency')
        ->setParameter('currency', $currencyCode);

    $result = $qb->getQuery()->getOneOrNullResult();
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

然而,这会返回以下内容:

[Semantical Error] line 0, col 65 near 'code WHERE code.currency': Error: 
Class Domain\Asset\Asset has no association named code
Run Code Online (Sandbox Code Playgroud)

如何搜索嵌入类?

编辑:

我可以通过做这样的事情得到结果,但是,我觉得这是一个黑客:

    $query = "SELECT * from asset where code_currency='BTC';";
    $statement = $this->objectManager->getConnection()->prepare($query);
    $statement->execute();

    $result = $statement->fetchAll();

    return $result;
Run Code Online (Sandbox Code Playgroud)

doctrine-orm zend-framework3

1
推荐指数
2
解决办法
3703
查看次数

标签 统计

doctrine-orm ×1

zend-framework3 ×1