• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

BEi Einarbeitung in ZF mit Doctrine/ORM blockiert

n00n

New member
Hi,

nachdem ich nun fast 3 Jahre nicht mehr mit ZEND gearbeitet habe, muss ich ein Projekt aufsetzen um mich wieder ein zu arbeiten.

Ich habe das Zend 3 Skeleton aufgesetzt und auch Doctrine.
Zend läuft.

Problem:
1. Ich kann aus der Konsole heraus meine Entitäten nicht mit der Datenbank mappen.
Funktioniert:
PHP:
./vendor/bin/doctrine-module orm:validate-schema
[Mapping]  OK - The mapping files are correct.[Database] 
OK - The database schema is in sync with the mapping files.
Aber das hier nicht:
PHP:
./vendor/bin/doctrine-module orm:schema-tool:create
No Metadata Classes to process.
Irgendwas muss ich da vergessen haben. Ich wüsst gerne was.

2. Vermutlich hängt das hier mit Problem #1 zusammen:
Ich versuche das Repository aus zu lesen.
PHP:
class IndexController extends AbstractActionController{

    private $entityManager;

    public function __construct($entityManager)
    {
        $this->entityManager = $entityManager;
    }

    public function indexAction()
    {
        $users = $this->entityManager->getRepository('Application/Entity/User')->findAll();
        return new ViewModel();
    }
}
und habe brav den Entitty Manager über ne Factory injected
PHP:
class IndexControllerFactory implements FactoryInterface{
    public function __invoke(ContainerInterface $container,
                             $requestedName, array $options = null)
    {
        $entityManager = $container->get('doctrine.entitymanager.orm_default');

        // Instantiate the controller and inject dependencies
        return new IndexController($entityManager);
    }
}
PHP:
$users = $this->entityManager->getRepository('Application/Entity/User')->findAll();
führt zu
PHP:
An error occurred during execution; please try again later.

Doctrine\Common\Persistence\Mapping\MappingException

Kann mir hier jemand unter die Arme greifen? Suche schon die ganze Woche, aber alle Hilfestellungen im Netz, sind genau so geschrieben wie ich es gemacht habe.

Bin für jede Hilfe dankbar. Denn in 2 Wochen muss ich wieder fit sein.
Kann gerne auch meinen ganzen Code bei bitbucket hosten(is nich viel, nur ein Controller, eine Action und die Factory).

Danke.
n00n
 

Kaiuwe

Super-Moderator
Willkommen im Forum! :)

Dein Problem betrifft nicht das Zend Framework, sondern Doctrine, welches kein Teil vom Zend Framework ist. Dein Kontroller und deine Factory laufen. Auch das Modul zu Doctrine scheint soweit korrekt zu funktionieren.

Deine Problemstellen sind, wie selber richtig erkannt:

Code:
./vendor/bin/doctrine-module orm:schema-tool:create
No Metadata Classes to process.
Und
Code:
An error occurred during execution; please try again later.

Doctrine\Common\Persistence\Mapping\MappingException
Vor allem letzte Meldung ist unvollständig, denn hier solltest du eine genauere Fehlerbeschreibung erhalten.

Schau mal bitte, ob folgendes in deiner Konfiguration enthalten ist:

PHP:
'view_manager'    => [
    'display_not_found_reason' => true,
    'display_exceptions'       => true,
],
Beide Fehlermeldung weisen eindeutig auf Doctrine als Quelle. Du kannst also vorerst das Zend Framework bei deiner Suche weglassen.
 
Oben