2013-03-02 6 views
7

私はsymfony2を初めて使用しています。私はカスタムリポジトリクラスを作成しようとしています。ここでSymfony2カスタムリポジトリクラス

は私がやっているものです:

  • を私は(MobilePhones)エンティティクラスに注釈を追加

@ORM \エンティティ(repositoryClass = "Maak \ DefaultBundle \エンティティ\ MobilePhonesRepository" MobilePhonesRepository I CRで)

$ EM-> getRepository( 'MaakDefaultBundle::MobilePhones')私のカスタム関数は、私が使用して関数を呼び出したコントローラでfindAllMobilePhones()

  • の名前eated - > findAllMobilePhones();

  • しかし、私はUndefined method findAllMobilePhones()を得て、私はキャッシュをクリアして、同じエラーを試みました。なにが問題ですか?

    マイリポジトリクラス:自分の時間のために、すべての人たちへの

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

    'エコーget_class($ EM-> getRepository( 'MaakDefaultBundle:MobilePhonesは'))何をしない'返しますか? MobilePhonesRepositoryのクラスファイルも提供できますか? – Sean

    +0

    Doctrine \ ORM \ EntityRepositoryを返す –

    +0

    <?php 名前空間Maak \ DefaultBundle \ Entity; Doctrine \ ORM \ EntityRepositoryを使用します。 - >のgetResult:>からCreateQuery( 'p.nameのASC BY製品PのORDERをAcmeStoreBundleからのPをSELECT') - クラスMobilePhonesRepositoryはEntityRepository { パブリック関数findAllMobilePhones() { 戻ります$ this-> getEntityManager() を拡張します(); } } –

    答えて

    2

    感謝。最後に私はこの問題を発見しました。

    私はプロジェクト全体をデバッグすることに決めました。メタデータにcustomRepositoryNameを設定しようとしていたXMLDriverにrepository-classが設定されていませんでした。これはXMLマッピングを使用していたためで、このエンティティでは注釈を使用してrepositoryClassを提供していました。再び

    感謝:)