2010-07-21 4 views
0

조회 :교리는 항상 예를 ​​들어 쿼리에 ID 열을 포함

$new_fees = Doctrine::getTable('Stats')->createQuery('s') 
    ->select('s.sid')->where('s.uid = ?', $this->uid) 
    ->andWhere('s.operation = ?', PPOperationType::FEE_PAID_BY_REFERRED_OWNER) 
    ->andWhere('s.created_at > ?', $lastwd) 
    ->groupBy('s.sid')->execute(); 

s.id이 포함되어 있기 때문에 (내가하지 않았다 작동하지 않습니다 교리를 요구하십시오). id 컬럼을 제거하려면 어떻게해야합니까? 원시 SQL을 사용하면 교리의 유용성이 사라집니다.

+0

당신이 s.sid 대신에 당신을 원하는 콜린은 무엇입니까? – turbod

답변

2

당신은 교리 ID로 기본 차를 사용하지 않는 있도록 setTableDefinition에서 기본으로 해당 테이블의 일부 열을 설정해야합니다. 이다의이 SID를 가정 해 봅시다 당신이 실제 기본 키 .. 그리고 ...

public function setTableDefinition(){ 
    .... 
    $this->hasColumn('sid', 'decimal', 2, array(
       'type' => 'decimal', 
       'length' => 2, 
       'unsigned' => 0, 
       'primary' => true, 
       'default' => '0', 
       'notnull' => true, 
       'autoincrement' => false, 
       )); 
    } 

을 주목 'primary' => true,이 교리가 심지어 테이블 정의 파일에 정의되지에도 기본 기본 키 (로 ID를 사용하는 것을 방지