答案 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”。