2011-03-07 3 views
1

모델/폴더라고하면 내 엔티티를 씁니다. 같은Doctrine 2로 엔티티를 직접 이동/작성해야합니까?

뭔가 :

namespace Organisation\User; 
/** 
@Entity 
*/ 
class Customer { 

/** 
* @Column(type="integer") @GeneratedValue 
*/ 
protected $_id; 
} 

}

그래서 내가 $customer = new \Organisation\User\Customer();

좋아 내 개체의 인스턴스거야,하지만 난 doctrine orm:generate-entities library/를 사용하는 경우는 다음과 같은 디렉토리를 생성합니다

library/Organisation/User/Customer.php 

괜찮아요. 코드에서 주석이 하나도 없으므로 사용하려고하면 주석이 없기 때문에 doctrine\ORM\Mapping\MappingException: Class Organisation\User\Customer is not a valid entity or mapped super class.이됩니다.

그래서 네임 스페이스를 제거하고 메타 데이터 정보가있는 엔티티와 동일한 디렉토리에 생성하고 내 라이브러리 폴더로 이동 한 다음 작업 할 네임 스페이스를 추가해야합니다.

보기 흉한 것처럼 보이지만 뭔가 놓쳤습니까? 당신이 쓴 경우 생성-기관이 반복적으로, 다음, 나는 심지어 내 엔티티 메타 데이터

답변

0

내에서 내 실제 구조를 사용할 수 없습니다 작동하지 않습니다

편집 : 는 그 ORM을 말할 것을 잊었다 이미 엔티티 클래스를 생성했는데 왜 생성하려고합니까?

새 프로젝트를 구동하는 일반적인 방법은 주석이 달린 엔티티 클래스를 작성하고 orm:schema-tool:create을 사용하여 데이터베이스 스키마를 생성하는 것입니다.

필자가 보았던 대부분의 예제는 라이브러리의/아래에 엔터티를 꽂아 놓았습니다. 설명 된 것처럼 클래스의 이름 공간에 따라 일부 중첩 된 디렉터리에 있습니다. 일반적으로 기본 Doctrine2 자동 로더 설정으로 작동하므로 이는 좋은 일입니다.

Doctrine2를 이미 존재하는 데이터베이스 스키마에 맞추려고하지 않는다면 라이브러리/Entity/.php와 같은 모든 엔티티 클래스 파일을 붙이고 orm:schema-tool:updateorm:schematool:update을 사용하여 당신을위한 데이터베이스.

0

arg --generate-annotations을 사용하십시오.

관련 문제