2010-01-11 4 views
1

Doctrine에는 Doctrine의 코드에 의해 생성 된 모든 모델에서 전역 식별자 열을 설정할 수있는 상수 변수가 제공됩니다. 이 테이블을 특정 테이블에 만들지 않도록이 값을 재정의하거나 종료 할 수있는 방법을 찾으려고합니다.Doctrine의 모델에서 Constant를 어떻게 재정의합니까?

ATTR_DEFAULT_IDENTIFIER_OPTIONS

이는 부트 스트랩 PHP 파일에 설정됩니다 그것은 자동으로 데이터베이스에서 해당 테이블을 작성합니다

의 정수이다.

예제 코드 :

// set the default primary key to be named 'id', integer, 4 bytes, Auto Increment = true 
Doctrine_Manager::getInstance()->setAttribute(
Doctrine::ATTR_DEFAULT_IDENTIFIER_OPTIONS, 
array('name' => 'id', 'type' => 'integer', 'length' => 4, 'autoincrement' => true)); 

하지만 난에 대한 "ID"열이 필요하지 않은 테이블/모델을한다면 어떨까요?

답변

3

기본 키로 다른 열을 지정하지 않은 경우에만 Doctrine이 id 열을 생성합니다. 스키마의 모든 PK와 설정 didnt한다대로, 기본 키로 id라는 이름의 열을 생성하는 것

Example: 
    tableName: examples 
    columns: 
    sometext: string(12) 
    somedate: date(25) 
    sometimestamp: timestamp(25) 

: 사용 예를 들어,

.

은 그러나 경우, 대신에, 당신은 사용 : 당신도 어떤 일정을 재정의 할 필요가없는, 그래서

Example: 
    tableName: example 
    columns: 
    someint: 
     type: integer(10) 
     primary: true 
    sometext: string(12) 
    somedate: date(25) 
    sometimestamp: timestamp(25) 

secound 예는 id 발생하지 않을 것입니다. Doctrine은 테이블에 적어도 하나의 기본 키를 갖도록 강제하기 때문에 "문제"가 발생합니다. 단지 좋은 연습을 시행합니다.

+0

하하하 그래서 단순하고 아직 어떤 이유로 나는 그것을 놓치고있었습니다 !!! :-) 너 다 남자. – dnyce

관련 문제