2014-09-03 1 views
1

Я использую ZF2 с доктриной, и я хотел бы использовать репозиторий, но я имею эту ошибку:пользовательского хранилища для доктрины и ZF2

The class 'Application\Repository\EventRepository' was not found in the chain configured namespaces Application\Entity 

Субъект:

namespace Application\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity(repositoryClass="Application\Repository\EventRepository") 
*/ 
class Event { 
    // ... 
} 

Репозиторий :

namespace Application\Repository; 

use Doctrine\ORM\EntityRepository; 

class EventRepository extends EntityRepository 
{ 
    public function test() 
    { 
     // ... 
    } 
} 

В контроллере:

$this->getEntityManager()->getRepository('Application\Repository\EventRepository')->test() 

В моей module.config.php, у меня это:

return array(
    // ... 
    'doctrine' => array(
     'driver' => array(
      'application_entities' => array(
       'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 
       'cache' => 'array', 
       'paths' => array(__DIR__ . '/../src/Application/Entity') 
      ), 
      'orm_default' => array(
       'drivers' => array(
        'Application\Entity' => 'application_entities' 
       ) 
      ) 
     ), 
     // ... 
    ) 
); 

Так что я попытался изменить для:

return array(
    // ... 
    'doctrine' => array(
     'driver' => array(
     'application_entities' => array(
      'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 
      'cache' => 'array', 
      'paths' => array(__DIR__ . '/../src/Application/Entity') 
     ), 
     'application_repositories' => array(
      'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 
      'cache' => 'array', 
      'paths' => array(__DIR__ . '/../src/Application/Repository') 
     ), 
     'orm_default' => array(
      'drivers' => array(
       'Application\Entity'  => 'application_entities', 
       'Application\Repository' => 'application_repositories' 
      ) 
     ) 
    ), 
     // ... 
    ) 
); 

И Я новую ошибку:

Class "Application\Repository\EventRepository" sub class of "Doctrine\ORM\EntityRepository" is not a valid entity or mapped super class. 

В чем проблема?

Спасибо

ответ

0

Проверить это Custom Repositories Вы должны вызвать $ this-> getEntityManager() -> getRepository ('Application \ Entity \ Event') -> тест()

0

Да skurty, SylarBg является правильным вместо прямого вызова репозитория, вам необходимо вызвать связанный объект, через который вызов отправляется в репозиторий

 Смежные вопросы

  • Нет связанных вопросов^_^