2011-11-26 30 views
1

我有一個關於atk4 MVCgrid的問題,我的數據庫表沒有一個名爲「ID」的字段我的主鍵是id_material,我不能改變ID域,我的SQL包含一個文件不存在的id,因此失敗。 我如何使用我的真正主鍵更改默認ID主鍵字段(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」有第二個參數,也許我可以直接在那裏設置may數據庫字段的數組?藉口,但形成我是一種新的方式 – user940945

+0

您可以通過'setStaticSource'設置靜態數據數組。爲什麼我們需要網格的「ID」是因爲我們的JavaScript綁定假定有一列他們可以依賴作爲唯一的標識符,什麼是更好的名稱ID字段然後「ID」? – romaninsh