2016-03-22 7 views
2

Ich mache eine Anwendung mit mehreren Bundles und Datenbankverbindungen.Die Klasse 'ScheduleBundle Entity schedule' wurde nicht in der Kette der konfigurierten Namespaces gefunden. StudentsBundle Entity

Ich erhalte diese Fehlermeldung: Die Klasse 'ScheduleBundle \ Entity \ Zeitplan' wurde nicht in der Kette konfiguriert Namespaces StudentsBundle \ Entity gefunden 500 Internal Server Error - MappingException

Hier ist der Code aus der

Controller
<?php 
namespace ScheduleBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\HttpFoundation\Response; 

//Json Response 
use Symfony\Component\HttpFoundation\JsonResponse; 

//Class Controller 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

//Request 
use Symfony\Component\HttpFoundation\Request; 

use ScheduleBundle\Entity\schedule; 

class ApiController extends Controller 
{ 
    /** 
    * @Route("/api/{week}") 
    */ 
    public function roosterApi(Request $request, $week) 
    { 
    $rooster = array('week' => '1'); 


    $entityManager = $this->get('doctrine')->getManager(); 
    $roosterConnection = $this->get('doctrine')->getRepository('ScheduleBundle:schedule', 'schedule'); 
    $dataRooster = $roosterConnection->findOneByStudentId('36838'); 


    $dataRooster->setSchedule($rooster); 

    $entityManager->persist($dataRooster); 
    $entityManager->flush(); 

    $out = array('1' => $week); 

    return new JsonResponse($out, 200, array('Content-Type' => 'application/json')); 
    } 
} 

?> 

ich glaube, das Problem mit meinem ORM-Mapping ist, so kann ich die Lehre Code aus config.yml umfassen

# Doctrine Configuration 
doctrine: 
    dbal: 
     default_connection: StudentDB 
     connections: 
      StudentDB: 
       driver: '%database_driver%' 
       host:  '%database_host%' 
       port:  '%database_port%' 
       dbname: '%database_students%' 
       user:  '%database_user%' 
       password: '%database_password%' 
       charset: UTF8 
      TeacherDB: 
       driver: '%database_driver%' 
       host:  '%database_host%' 
       port:  '%database_port%' 
       dbname: '%database_teachers%' 
       user:  '%database_user%' 
       password: '%database_password%' 
       charset: UTF8 
      GradesDB: 
       driver: '%database_driver%' 
       host:  '%database_host%' 
       port:  '%database_port%' 
       dbname: '%database_grades%' 
       user:  '%database_user%' 
       password: '%database_password%' 
       charset: UTF8 
      ScheduleDB: 
       driver: '%database_driver%' 
       host:  '%database_host%' 
       port:  '%database_port%' 
       dbname: '%database_schedule%' 
       user:  '%database_user%' 
       password: '%database_password%' 
       charset: UTF8 
      SpecialGroupDB: 
       driver: '%database_driver%' 
       host:  '%database_host%' 
       port:  '%database_port%' 
       dbname: '%database_specialgroup%' 
       user:  '%database_user%' 
       password: '%database_password%' 
       charset: UTF8 
      ToDoListDB: 
       driver: '%database_driver%' 
       host:  '%database_host%' 
       port:  '%database_port%' 
       dbname: '%database_todolist%' 
       user:  '%database_user%' 
       password: '%database_password%' 
       charset: UTF8 

    orm: 
     default_entity_manager: students 
     entity_managers: 
      students: 
       connection: StudentDB 
       mappings: 
        StudentsBundle: ~ 
      teachers: 
       connection: TeacherDB 
       mappings: 
        TeachersBundle: ~ 
      grades: 
       connection: GradesDB 
       mappings: 
        GradesBundle: ~ 
      schedule: 
       connection: ScheduleDB 
       mappings: 
        ScheduleBundle: ~ 
      specialgroup: 
       connection: SpecialGroupDB 
       mappings: 
        SpecialGroupBundle: ~ 
      todolist: 
       connection: ToDoListDB 
       mappings: 
        ToDoListBundle: ~ 

ich verwende Symfony 3.0.3 und Lehre

edit: geändert ScheduleBundle \ Entity verwenden diese ScheduleBundle \ Entity \ Zeitplan zu verwenden, hat das Problem nicht beheben

+0

Ihre letzte Anweisung 'use' fehlt der Dateiname. 'Verwenden Sie ScheduleBundle \ Entity \ YourFileName' –

+0

Hallo das war nicht das Problem wird die Frage aktualisieren – Jeroen

Antwort

1

Sie müssen die richtige Lehre Entity-Manager verwenden Bedienung. In Ihrem Code verweisen Sie auf den Doktordienst, der ein Alias ​​des Standard-Entity-Managers ist. Für den Zeitplan Entity Manager müssen Sie den folgenden Service nutzen:

doctrine.orm.schedule_entity_manager 

So versuchen, mit diesen:

$this->get('doctrine.orm.schedule_entity_manager') 

Statt dessen:

$this->get('doctrine') 

für Dump aktuelle Service-Definition möglich Verwenden Sie den Konsolenbefehl:

app/console debug:container |grep entity 

Hope this help

+0

Hallo Danke für Ihre Antwort der Fehler ist weg, aber ich bekomme stattdessen einen neuen Fehler: Versucht, eine undefinierte Methode namens" getManager "der Klasse aufzurufen" Doctrine \ ORM \ EntityManager ". – Jeroen

+0

Hallo behoben das Problem, das ich vergessen habe zu entfernen -> getManager() danke für Ihre Hilfe – Jeroen

Verwandte Themen