2013-03-02 5 views
7

Sono nuovo in symfony2 e sto cercando di creare una classe di repository personalizzata e non potrei farlo.Classe repository personalizzato Symfony2

Ecco quello che sto facendo:

  • ho aggiunto un'annotazione di classe di entità (i cellulari)

@ORM \ Entity (repositoryClass = "Maak \ DefaultBundle \ Entity \ MobilePhonesRepository")

  • In MobilePhonesRepository I cr eated mia funzione personalizzata denominata findAllMobilePhones()

  • In controllore ho chiamato funzione utilizzando:

$ EM> getRepository ('MaakDefaultBundle: i cellulari') -> findAllMobilePhones();

ma ottengo Undefined method findAllMobilePhones(), ho eliminato la cache e ho provato ma lo stesso errore. Che c'è?

mia classe repository:

<?php 

namespace Maak\DefaultBundle\Entity; 
use Doctrine\ORM\EntityRepository; 

class MobilePhonesRepository extends EntityRepository 
{ 
    public function findAllMobilePhones() 
    { 
     return $this->getEntityManager()->createQuery('SELECT p FROM AcmeStoreBundle:Product p ORDER BY p.name ASC') ->getResult(); 
    } 
} 
+1

Cosa significa 'eco get_class:' ritorno ($ EM> getRepository ('MaakDefaultBundle i cellulari'))? Puoi anche fornire il file di classe per MobilePhonesRepository? – Sean

+0

Restituisce Doctrine \ ORM \ EntityRepository –

+0

getEntityManager() -> createQuery ('SELECT P da AcmeStoreBundle: p Prodotto ORDER BY p.name ASC') -> getResult(); } } –

risposta

2

Grazie a tutti i ragazzi per il loro tempo. Finalmente ho trovato il problema.

Ho deciso di eseguire il debug dell'intero progetto e ho trovato repository-class non impostato in XMLDriver che stava per impostare customRepositoryName nei metadati. Era perché stavo usando i mapping XML e per questa entità stavo fornendo repositoryClass usando le annotazioni.

grazie :) nuovo