2011-11-26 122 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