gpt4 book ai didi

没有关系的 Symfony 实体

转载 作者:行者123 更新时间:2023-12-02 21:12:22 27 4
gpt4 key购买 nike

我使用 Symfony2 和 Doctrine,我有一个关于实体的问题。

出于性能方面的考虑,我想知道是否可以在不进行所有关联的情况下使用实体?

目前,我还没有找到另一种方法来创建继承带有关联的类的模型,并且关联在继承的类中指定 NULL。

提前谢谢


好的,一点细节,它用于 API REST (JSON)。

这是我的课:

/**
* Offerequipment
*
* @ORM\Table(name="offer_equipment")
* @ORM\Entity(repositoryClass="Charlotte\OfferBundle\Repository\Offerequipment")
*/

class Offerequipment
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\ManyToOne(targetEntity="Charlotte\OfferBundle\Entity\Offer")
* @ORM\JoinColumn(name="offer_id", referencedColumnName="id")
*/
private $offer;

/**
* @ORM\ManyToOne(targetEntity="Charlotte\ProductBundle\Entity\Equipment")
* @ORM\JoinColumn(name="equipment_id", referencedColumnName="id")
*/
private $equipment;

/**
* @VirtualProperty
*
* @return String
*/
public function getExample()
{
return $something;
}

使用 QueryBuilder 方法,我无法获取虚拟属性或 getter。

感谢您的帮助:)

最佳答案

查看序列化。

通过序列化实体,您可以选择在渲染实体时排除或公开实体的属性。

看看Symfony built-in Serializer和/或 JMSSerializer .

否则,您可以使用 QueryBuilderDQL 选择要在查询中获取的字段。

像这样,您可以在实体的Repository中创建自己的find方法。

// src/AcmeBundle/Repository/FooRepository

class FooRepository extends \Doctrine\ORM\EntityRepository

// ...

public function find($id) {
$queryBuilder = $this->createQueryBuilder('e')
->select('e.fieldA', 'e.fieldB') // selected fields
->where('e.id = :id') // where statement on 'id'
->setParameter('id', $id);

$query = $queryBuilder->getQuery();

$result = $query->getResult();
}

// ...
}

不要忘记在相应的Entity中定义Repository

/**
* Foo.
*
* @ORM\Entity(repositoryClass="AcmeBundle\Repository\FooRepository")
*/
class Foo
{
// ...
}

关于没有关系的 Symfony 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410816/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com