2016-03-22 13 views
2

Çok sayıda paket ve veritabanı bağlantısı içeren bir uygulama yapıyorum. MappingException İşte'ScheduleBundle Entity schedule' sınıfı, zincir yapılandırılmış ad alanlarında bulunmadı StudentsBundle Entity

kodudur - StudentsBundle \ Varlık Internal Server Error sınıfı 'ScheduleBundle \ Varlık \ tarifesi' zincir yapılandırılan ad bulunamadı 500 :

bu hatayı almaya devam kontrolör

<?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')); 
    } 
} 

?> 

Ben config.yml gelen doktrini kod içeren bu yüzden sorun benim orm haritalama ile olduğunu düşünüyorum

Ben Symfony 3.0.3 ve doktrin

düzenlemek kullanıyorum

: Doğru doktrin varlık yöneticisi kullanmak gerekir problemi

+0

Son 'use' ifadenizde dosya adı eksik. 'kullanmak ScheduleBundle \ Entity \ YourFileName' –

+0

merhaba bu sorun – Jeroen

cevap

1

düzeltmek vermedi bu ScheduleBundle \ Varlık \ zamanlamayı kullanmak ScheduleBundle \ Varlığı kullanmak değişti hizmet. Kodunuzda, varsayılan varlık yöneticisinin takma adı olan doktrin hizmetine başvurursunuz. Bunun yerine

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

: Bu kullanarak Yani

doctrine.orm.schedule_entity_manager 

deneyin: yapabilirsiniz dökümü geçerli hizmet tanımı için

$this->get('doctrine') 

zamanlama varlık yöneticisi için, şu hizmeti kullanmak gerekir konsol komutunu kullanın:

app/console debug:container |grep entity 

Yardım Bu yardım

+0

soruyu güncellemek değil Merhaba cevabınız için teşekkür ederim hata gitti ama yerine yeni bir hata alıyorum: sınıf" getManager "adlı bir undefined yöntemini çağırmak için denendi doktrin \ ORM \ EntityManager". – Jeroen

+0

Merhaba, kaldırmayı unuttuğum sorunu düzeltin -> getManager() yardımın için teşekkürler – Jeroen