2012-02-01 2 views
2
내가 services.yml를 통해 사용자 정의 저장소와 내 서비스를로드하려고

를 통해 서비스에전달 사용자 정의 개체 repositoriy 클래스는 services.yml

지금 내가 가진 :

parameters: 
    job_entity_name: Marek\JobeetBundle\Entity\Job 
    category_entity_name: Marek\JobeetBundle\Entity\Category 

services: 
    job_metadata: 
    class: Doctrine\ORM\Mapping\ClassMetaData 
    arguments: 
     name: [%job_entity_name%] 
    category_metadata: 
    class: Doctrine\ORM\Mapping\ClassMetaData 
    arguments: 
     name: [%category_entity_name%] 
    job_repo: 
    class: Marek\JobeetBundle\Repositories\JobRepository 
    arguments: 
     em: [@doctrine.orm.entity_manager] 
     class: [@job_metadata] 
    category_repo: 
    class: Marek\JobeetBundle\Repositories\CategoryRepository 
    arguments: 
     em: [@doctrine.orm.entity_manager] 
     class: [@category_metadata]  
    job_service: 
    class: Marek\JobeetBundle\JobService 
    arguments:  
     jobRepo: [@job_repo] 
     categoryRepo: [@category_repo] 

오류 :

Notice: Array to string conversion in D:\Devel\symfony2\jobeet\vendor\doctrine\lib\Doctrine\ORM\Mapping\ClassMetadata.php line 66

나는 포기한다. 누군가 도울 수 있을까요? 내 스키마가 나쁜 물론

[편집]

에 수정은 다음과 같습니다

services: 
    job_metadata: 
    class: Doctrine\ORM\Mapping\ClassMetaData 
    arguments: 
     name: "Marek\JobeetBundle\Entity\Job" 
    category_metadata: 
    class: Doctrine\ORM\Mapping\ClassMetaData 
    arguments: 
     name: "Marek\JobeetBundle\Entity\Category" 
    job_repo: 
    class: Marek\JobeetBundle\Repositories\JobRepository 
    arguments: 
     em: @doctrine.orm.entity_manager 
     class: @job_metadata 
    category_repo: 
    class: Marek\JobeetBundle\Repositories\CategoryRepository 
    arguments: 
     em: @doctrine.orm.entity_manager 
     class: @category_metadata  
    job_service: 
    class: Marek\JobeetBundle\JobService 
    arguments:  
     jobRepo: @job_repo 
     categoryRepo: @category_repo 

답변

3

이 응답에서는, 즉 공장을 사용 (서비스와 같은 저장소를 정의 할 수있는 더 좋은 방법을 찾을 수 있습니다 -services 및 factory-methods).

Injecting repositories

관련 문제