Cakephp 3.3迁移如何设置外键约束?
How to set Foreign Key Constraint in Cakephp 3.3 Migration?
我是 Cakephp 的新手,正在使用 Cakephp3.3 构建应用程序,我正在处理迁移,我必须创建一个 user_infos
table,并想添加一个新列 user_id
, 我可以通过迁移添加新列,但我不知道如何添加外键。
这是我的迁移文件
public function change()
{
$table = $this->table('user_infos');
$table->addColumn('user_id', 'integer', [
'default' => null,
'limit' => 11,
'null' => false,
]);
$table->addColumn('title', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
]);
$table->addColumn('created', 'datetime', [
'default' => null,
'null' => false,
]);
$table->addColumn('modified', 'datetime', [
'default' => null,
'null' => false,
]);
$table->create();
}
您的迁移似乎是基于Phinx
;你可以在Phinx\Db\Table
中找到相关的方法。添加
->addIndex(['user_id'])
->addForeignKey('user_id', 'users', 'id')
您的迁移是为了 users
table 上的约束。
在Phinx中,您可以使用下面的代码添加级联外键
$table->addForeignKey('user_id', 'users', 'id', ['delete'=> 'CASCADE', 'update'=> 'CASCADE']);
我是 Cakephp 的新手,正在使用 Cakephp3.3 构建应用程序,我正在处理迁移,我必须创建一个 user_infos
table,并想添加一个新列 user_id
, 我可以通过迁移添加新列,但我不知道如何添加外键。
这是我的迁移文件
public function change()
{
$table = $this->table('user_infos');
$table->addColumn('user_id', 'integer', [
'default' => null,
'limit' => 11,
'null' => false,
]);
$table->addColumn('title', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
]);
$table->addColumn('created', 'datetime', [
'default' => null,
'null' => false,
]);
$table->addColumn('modified', 'datetime', [
'default' => null,
'null' => false,
]);
$table->create();
}
您的迁移似乎是基于Phinx
;你可以在Phinx\Db\Table
中找到相关的方法。添加
->addIndex(['user_id'])
->addForeignKey('user_id', 'users', 'id')
您的迁移是为了 users
table 上的约束。
在Phinx中,您可以使用下面的代码添加级联外键
$table->addForeignKey('user_id', 'users', 'id', ['delete'=> 'CASCADE', 'update'=> 'CASCADE']);