2011-11-26 7 views
1

atk4 MVCgrid에 대한 질문이 내 db 테이블에 "id"라는 기본 필드가 없습니다. id_material, idfield를 변경할 수 없으며 SQL에 파일이 있습니다. 이드는 존재하지 않으므로 실패합니다. 기본 기본 키 필드 (ID)를 실제 기본 키로 어떻게 바꿀 수 있습니까?atk4 데이터베이스 테이블 id

내 간단한 코드 :

class Model_Material extends Model_Table 
{ 
    public $entity_code='material'; 
    public $table_alias='p'; 
    function defineFields(){ 
     parent::defineFields(); 
     $this->addField('id_material'); 
     $this->addField('material'); 
    } 
} 

감사의

답변

0

당신이해야 할 모든 별칭 만드는 것입니다 : 외래 키와

$this->getField('id')->calculated(true); 

function calculate_id(){ 
    return 'id_material'; 
} 

당신이 가진 것보다 어려움. 더 많은 유연성을 제공 할 4.2 릴리스를 지켜 볼 수도 있습니다.

+0

감사는 많은,하지만 나를 위해 그 기본 선택은 "ID가"항상 왜 간단한 매개 변수에 의해 기본 테이블의 기본 키를 설정할 수 없습니다 이상하다 "setsource"에 두 번째 매개 변수가있는 것을 볼 수 있습니다. 아마도 데이터베이스 필드가 직접 배열을 설정할 수 있습니까? 변명하지만 양식은 새로운 approch입니다 – user940945

+0

'setStaticSource'를 통해 정적 데이터 배열을 설정할 수 있습니다. 그리드에 "id"가 필요한 이유는 자바 스크립트 바인딩이 고유 식별자로 의존 할 수있는 열을 가지고 있고 ID 필드의 이름이 "id"인 것이 더 좋기 때문입니다. – romaninsh