2011-09-15 45 views
0

我需要关于symfony中doctrine的帮助,我想扩展/定制一个实体库......所以我在这个包的Res​​pository文件夹中创建了一个类(其中没有' t存在)但我不知道除了从EntityRepository扩展类以外,还有什么可做的。在symfony中扩展/自定义一个学说的实体库

下面是代码:

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

?> 

因此,这里是如何看起来在我的项目:

http://dl.dropbox.com/u/29094109/respositoryextend.tiff

回答

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 
{ 
    //... 
}