我需要symfony中的doctrine帮助,我想扩展/自定义实体存储库...所以我在bundle的Respository文件夹中创建了一个类(不存在),但我不知道除了从EntityRepository扩展类之外还要做什么。
以下是代码:
<?php
class InvitadoRepository extends EntityRepository
{
public function findOneByIdJoinedToCategory($id)
{
$query = $this->getEntityManager()
->createQuery('
SELECT p, c FROM AcmeStoreBundle:Product p
JOIN p.category c
WHERE p.id = :id'
)->setParameter('id', $id);
try {
return $query->getSingleResult();
} catch (\Doctrine\ORM\NoResultException $e) {
return null;
}
}
}
?>
所以这是它在我的项目中的样子:
答案 0 :(得分:6)
这个问题已经过时了,但如果您或有人查看此问题尚不知道答案,那么您需要告诉Doctrine为该实体使用自定义存储库类。
来自Symfony 2 Doctrine documentation的示例(使用注释;如果您愿意,您当然可以使用YAML或XML):
// src/Acme/StoreBundle/Entity/Product.php
namespace Acme\StoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="Acme\StoreBundle\Repository\ProductRepository")
*/
class Product
{
//...
}