【问题标题】:atk4 database table idatk4 数据库表ID
【发布时间】:2011-11-26 09:59:52
【问题描述】:

我有一个关于 atk4 MVCgrid 的问题,我的 db 表没有名为“id”的字段,我的主键是 id_material,我无法更改 idfield,我的 SQL 包含的文件 id 没有存在所以它失败了。 如何使用我的真实主键更改默认 id 主键字段 (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');
    }
}

谢谢

【问题讨论】:

    标签: mysql database orm model atk4


    【解决方案1】:

    您需要做的就是创建一个别名:

    $this->getField('id')->calculated(true);
    
    function calculate_id(){
        return 'id_material';
    }
    

    使用外键会遇到更多困难。您可能希望继续关注 4.2 版本,这将具有更大的灵活性。

    【讨论】:

    • 非常感谢,但对我来说很奇怪无法通过简单参数设置默认表主键,为什么默认选择总是“id”?,我看到“setsource”有第二个参数,也许我可以直接在那里设置一个数据库字段数组?对不起,但形成我是一个新的方法
    • 可以通过setStaticSource设置静态数据数组。我们需要“id”作为网格的原因是因为我们的 JavaScript 绑定假设有一个列可以作为唯一标识符,那么 ID 字段的名称比“id”更好吗?
    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 2020-07-22
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多