如何在cakephp 3中创建候选键?

时间:2017-02-03 18:51:17

标签: php mysql cakephp mysqli cakephp-3.0

1 个答案:

答案 0 :(得分:1)

每条评论更新 - 最初认为这是一个2.0问题。

CakePHP 3支持composite keys

class YourTable extends Table {
    public function initialize(array $config)
    {
        $this->table('table_name');
        $this->primaryKey(['program_id', 'location_id', 'course_id']);
    }
}

以及复合关系:

$this->belongsTo('Students', [
    'foreignKey' => ['program_id', 'location_id', 'course_id'],
]);

上一个答案:

CakePHP 2.0旨在根据docs on Conventions

使用单个主键
  

CakePHP不支持复合主键。如果要直接操作连接表数据,请使用直接查询调用或添加主键以作为普通模型对其进行操作。

你可以改为在MySQL中将组合指定为UNIQUE字段,但是CakePHP会为它的密钥指定一个字段,默认为“id”。