2010-05-30 2 views
1

:교리의 기본 가치와 관계 나는이 같은 컬럼에 대한 기본 값을 설정할 수 있습니다 MySQL의에서

ALTER TABLE <Table> CHANGE <Column> DEFAULT <NEW_DEFAULT_VALUE> 

나는 기본값 검색 할 수 있습니다 : 교리에이 개념을 달성하기 위해

SELECT DEFAULT(<Column>) FROM <Table> LIMIT 1 

이 가능를?

class UserTable extend Doctrine_Table { 
    /* ... */ 

    /** 
    * @return Doctrine_Record 
    */ 
    public function getDefaultProperty() { 
     return ???; 
    } 
    public function setDefaultProperty($value) { 
     /* $value can be either integer or Doctrine_Record */ 
    } 
} 

답변

0

우리가 이것을 알아낼 수 있는지 봅시다.

Line 567 of Record.php, 오브젝트가 작성 될 때 기본값을 채 웁니다 assignDefaultValues() 방법의 일부는 말한다 :

$default = $this->_table->getDefaultValueOf($column); 

그래서 당신은 실제로 당신이 사용할 수있는 getDefaultProperty()을 추가 할 필요가 없습니다 :

$userTable = Doctrine::getTable('User'); 
$defaultName = $userTable->getDefaultValueOf('name'); 

그러나 getDefaultProperty()을 입력하면 Doctrine_Record이 표시됩니다. 당신이 단지에 설정된 모든 기본 값이 전체 개체를 다시 얻고 싶은 경우에, 나는 당신이 바로 사용할 수 있습니다 확신 해요 :

$defaultUser = new User();

합니다 (Doctrine manual for Default Values 참조)하지만 당신의 디폴트 있는지 확인 데이터베이스에만있는 것이 아니라 schema.yml에 정의되어 있습니다. Doctrine은 데이터베이스에서 기본값을 읽지 않으며 스키마를 사용하여 수행 할 작업을 결정합니다.

어떻게 작동하는지 알려주십시오.

건배, ~ j

0

Doctrine_Table 클래스는 당신이 찾고있는 무엇을합니까 getDefaultValueOf 방법이 포함되어 실제로 무엇이 필요

내 테이블 클래스 이러한 방법입니다. 따라서 교리 레코드가 있다면 다음과 같이 작성할 수 있습니다 : $ record-> getTable() -> getDefaultValueOf ('address_line_1'); 'address_line_1'은 열입니다. 희망이 도움이됩니다.

관련 문제