Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF][ZendFramework2] Problem z Entity i Respository (Doctrine2)
Forum PHP.pl > Forum > PHP > Frameworki
donremigio
Witam

Dodałem do Zend2 Doctrine2, wygenerowałem Entity i do tego momentu wszystko jest ok.

Normalne zapytanie działa ok na przykład:
  1. $em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
  2. $data = $em->getRepository('Application\Entities\Article')->findAll();


Mam jednak problem z dodaniem do Doctrine2 własnych zapytań.

module.config.php
  1. 'doctrine' => array(
  2. 'driver' => array(
  3. 'Application_driver' => array(
  4. 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
  5. 'cache' => 'array',
  6. 'paths' => array(__DIR__ . '/../src/Application/Entities')
  7. ),
  8. 'orm_default' => array(
  9. 'drivers' => array(
  10. 'Application\Entities' => 'Application_driver'
  11. ),
  12. ),
  13. ),
  14. ),


Article.php
  1. namespace Application\Entities;
  2.  
  3. use Doctrine\ORM\Mapping as ORM;
  4.  
  5. /**
  6.  * Article
  7.  *
  8.  * @ORM\Table(name="article", indexes={@ORM\Index(name="fk_article_gallery1", columns={"gallery_idgallery"}), @ORM\Index(name="fk_article_sf_guard_user1", columns={"sf_guard_user_id"})})
  9.  * @ORM\Entity(repositoryClass="Repositories\ArticleRepository")
  10.  */


  1. namespace Repositories;
  2.  
  3. use Doctrine\ORM\EntityRepository;
  4.  
  5. /**
  6.  * ArticleRepository
  7.  *
  8.  * This class was generated by the Doctrine ORM. Add your own custom
  9.  * repository methods below.
  10.  */
  11. class ArticleRepository extends EntityRepository
  12. {
  13. }



I wyskakuje błąd
  1. Fatal error: Class 'Repositories\ArticleRepository' not found in C:\xampp2\htdocs\zendfr\vendor\doctrine\orm\lib\Doctrine\ORM\Repository\DefaultRep
    ositoryFactory.php on line 75


Plik ArticleRepository.php znajduje się w Application\Entities\Repositories

Czemu nie może go odnaleźć?
RiE
Jeżeli klasa ArticleRepository znajduje się w Application\Entities\Repositories to taka też powinna być przestrzeń nazw.
Czyli
  1. namespace Repositories;


zamień na

  1. namespace Application\Entities\Repositories;


I powinno to załatwić sprawę.
donremigio
Faktycznie pomogło

do tego w Article.php
  1. @ORM\Entity(repositoryClass="Application\Entities\Repositories\ArticleRepository")


i gra muzyka

Już nawet zamiast AnnotationDriver w module.config.php zmieniłem na XmlDriver i wygenerowałem xml i ten sam błąd wyskoczył.

Dotychczas siedziałem raczej w symfony1 i nieco zaczełem grzebać w symfony2 i szło mi ok. Ale Zend2 wydaje mi się jakiś taki ... przekombinowany. Głupie Doctrine w Symfony jest od początku, a tutaj trzeba dogrywać, grzebać w plikach konfiguracyjnych by zaskoczyło.

Dzięki za pomoc smile.gif

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.