2016-05-31 8 views

Antwort

1

Sie mischen ein paar Dinge hier oben. Dies soll Ihr Unternehmen sein:

<?php 

namespace App\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Table(name="categories") 
* @ORM\Entity(repositoryClass="App\Entity\Repository\CategoriesRepository") 
*/ 
class Categories 
{ 
} 

In doc Kommentar Anmerkung es sagt Lehre, wo die benutzerdefinierten Repository-Klasse zu finden. Doktrin lädt es für dich. Die Repositrierung benötigt keinen Konstruktor. Doctrine kümmert sich darum für Sie.

<?php 

namespace App\Entity\Repository; 

use App\Entity\Categories; 
use Doctrine\ORM\EntityRepository; 

class CategoriesRepository extends EntityRepository implements CategoriesRepositoryInterface 
{ 
    // No constructor here 

    public function fetchAll() 
    { 
     // ... 
    } 
} 

Und dann sieht Ihr Werk wie folgt aus:

<?php 

namespace App\Panel\Factory; 

use Doctrine\ORM\EntityManager; 
use Interop\Container\ContainerInterface; 
use App\Entity\Categories; 

class CategoriesRepositoryFactory 
{ 
    /** 
    * @param ContainerInterface $container 
    * @return CategoriesRepository 
    */ 
    public function __invoke(ContainerInterface $container) 
    { 
     // Get the entitymanager and load the repository for the categories entity 
     return $container->get(EntityManager::class)->getRepository(Categories::class); 
    } 
} 

In der Config Sie verwenden:

<?php 

return [ 
    'dependencies' => [ 
     'invokables' => [ 
     ], 
     'abstract_factories' => [ 
     ], 
     'factories' => [ 
      App\Entity\Repository\CategoriesRepositoryInterface::class => App\Panel\Factory\CategoriesRepositoryFactory::class, 
     ], 
    ], 
]; 
+0

Vielen Dank, Geert Eltink, wie geht es Ihnen immer die kommen Rettung! Sogar die Zeichenfolge in der Konfiguration geändert: App \ Panel \ Service \ CategoriesServiceInterface :: class => App \ Panel \ Factory \ CategoriesServiceFactory :: class, ' – Drakulitka