2016-12-02 4 views
0

모달 작업 sonata_type_collection를 가져올 수 없습니다소나타 관리자 나는 OneToMany가로 정의 내 관리자에서

/** 
* @ORM\ManyToOne(targetEntity="ModuleSequence", inversedBy="modules", cascade={"persist"}, fetch="LAZY") 
* @ORM\JoinColumn(name="sequence_id", referencedColumnName="id") 
*/ 
protected $sequence; 

내 관리 클래스에서 내가 정의 그것으로 '모듈': 필드 ModuleSequence 엔티티의 마지막

->add('modules', 'sonata_type_collection',array(
     'by_reference' => false 
)) 

여기이 AddModule 방법입니다 :

"추가"버튼이 있습니다. 모달을 얻었습니다. 채우고 유효성을 검사합니다. Ajax 요청은 프로파일 러로 전송되지만 새로운 행은 나타나지 않습니다.

'sequence_id'가 데이터베이스에 설정되어 있지 않고 그 이유를 알 수 없습니다. 제발 생각해주세요.

'인라인'& '테이블'옵션을 사용할 때 ID가 올바르게 설정됩니다.

답변

0

prePersist 및 preUpdate 메서드를 재정의하고 동일한 문제를 해결 한 다음 연결을 유지합니다. 여기 소나타 관리 GitHub의에 긴 토론 후

public function prePersist($object) 
{ 
    $this->persistBlocks($object); 

    $content->mergeNewTranslations(); 
} 

public function preUpdate($object) 
{ 
    $this->prePersist($object); 
} 

private function persistModules($object) 
{ 
    $em = $this->getConfigurationPool()->getContainer()->get('doctrine.orm.entity_manager'); 

    foreach($object->getModules() as $module) 
    { 
     $module->setObject($object); // change Object to the name of your Entity!! 
     $em->persist($module); 
    } 
}