Php 具有复合主键的Yii模型

Php 具有复合主键的Yii模型,php,mysql,indexing,yii,primary-key,Php,Mysql,Indexing,Yii,Primary Key,我的MySQL表的主表由两列组成:space_id(整数)和day(日期) 它在原始SQL中工作得很好,如果我试图创建一个副本,它会抱怨,但允许我在同一天或同一个空间创建行 然而,在Yii中,当使用newobject()和save()时,它会抱怨“space_id”必须是唯一的 我使用“Giix”来生成模型,如果它重要的话 我试图将此代码添加到模型中,但没有帮助: public function primaryKey(){ return array('space_id',

我的MySQL表的主表由两列组成:space_id(整数)和day(日期)

它在原始SQL中工作得很好,如果我试图创建一个副本,它会抱怨,但允许我在同一天或同一个空间创建行

然而,在Yii中,当使用newobject()和save()时,它会抱怨“space_id”必须是唯一的

我使用“Giix”来生成模型,如果它重要的话

我试图将此代码添加到模型中,但没有帮助:

public function primaryKey(){
            return array('space_id', 'day');
        }

据我所知,由于Gii不再支持Yii 1.1复合主键,这让许多开发人员感到沮丧。除了将数组作为主键返回之外,代码中还需要其他一些文档记录不完整的修改


将此代码添加到ActiveRecord类是可以的,但不应该是必需的,因为Yii已经从MySQL表声明中获得了这些信息

    public function primaryKey(){
       return array('space_id', 'day');
    }

当Yii抱怨“space_id”是唯一的时,giix可能已经在ActiveRecord类的rules()中添加了验证规则。在保存ActiveRecord之前会检查这些规则,并且只有在所有规则都正常的情况下才会保存。有关更多信息,请阅读。

giix正在进行验证
    public function primaryKey(){
       return array('space_id', 'day');
    }