Sonata Admin
번들을 사용하기 시작했으며 관리 인터페이스를 만들기 위해 엔티티를 번들과 매핑하는 방법에 대한 예제를 따르고있었습니다. DateTime 클래스에 정의 된 엔티티 관리자가 없습니다.
Post
라는 엔티티를 생성하고이 구성 YML 파일입니다
protected function configureFormFields(FormMapper $formMapper) {
$formMapper->add('title', 'text')
->add('published', 'checkbox', array('required' => false))
->add('publishingDate', 'sonata_type_model_hidden');
}
내가 소나타에
sonata_type_model_hidden
을 발견 :
Emiliano\PostsBundle\Entity\Post:
type: entity
table: null
repositoryClass: Emiliano\PostsBundle\Entity\PostRepository
id:
id:
type: integer
id: true
generator:
strategy: AUTO
fields:
title:
type: string
column: Title
lenght: 100
published:
type: boolean
column: Published
publishingDate:
type: datetime
column: Publishing_Date
nullable: TRUE
lifecycleCallbacks: { }
그런 다음 내
Admin
클래스에서 나는
configureFormFields
방법을 관리자
documentation 내가 성취하고자하는 것은 게시 날짜 (예 : 체크 박스
published
이 선택된 경우에만 날짜 설정)를 프로그래밍 방식으로 처리하여 사용자에게 구현을 숨기는 것입니다. I 필드의 모든 작품을 잘 보여 주면
No entity manager defined for class DateTime
In sonata-project/doctrine-orm-admin-bundle/Sonata/DoctrineORMAdminBundle/Model/ModelManager.php at line 214
내가 사용하는 것도 시도 : 그것은 내가 스택 트레이스에이 메시지가 엔티티를 수정할 때, 삭제, 읽기, 작성을 위해
모든 것이 잘 작동 :
->add('publishingDate', 'hidden');
성공하지 못함.
여기 정확히 무슨 문제가 있습니까? 그것은 Sonata Admin
이 엔티티 값으로 양식을 채우려고 시도하기 때문이며 발행 날짜는 DateTime
이고 양식 사양에서 나는 sonata_type_model_hidden
을 작성했기 때문입니까? 그렇다면 어떻게 이것을 피할 수 있습니까?
그래서 ModelManager의 라인 214는 무엇입니까? 나는 당신이 \ DateTime 대신에 DateTime을 사용하고있을 것이라고 생각한다. 순수한 추측. – Cerad
'$ em = $ this-> registry-> getManagerForClass ($ class);'그리고 나는 \ DateTime을 사용하고있다. –
그런 다음 코드를 확인해보십시오. $ class = 'DateTime'을 가지고 있고 확실히 $ em이 아닐 것이기 때문입니다. – Cerad