【问题标题】:How to set Foreign Key Constraint in Cakephp 3.3 Migration?如何在 Cakephp 3.3 迁移中设置外键约束?
【发布时间】:2016-10-14 10:25:01
【问题描述】:

我是 Cakephp 新手并使用 Cakephp3.3 构建应用程序,我正在处理迁移,我必须创建一个 user_infos 表,并且想要添加一个新列 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();
    }

【问题讨论】:

    标签: mysql cakephp database-migration phinx


    【解决方案1】:

    您的迁移似乎基于Phinx;你可以在Phinx\Db\Table找到相关的方法。添加

    ->addIndex(['user_id'])
    ->addForeignKey('user_id', 'users', 'id')
    

    迁移到users 表上的约束。

    【讨论】:

    • 嗨,谢谢,但是我们如何设置 On delete cascade 呢?
    • 这算不算关联?
    【解决方案2】:

    在 Phinx 中,您可以使用以下代码通过级联添加外键

    $table->addForeignKey('user_id', 'users', 'id', ['delete'=> 'CASCADE', 'update'=> 'CASCADE']);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-10
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2018-04-05
      • 1970-01-01
      • 2019-03-02
      相关资源
      最近更新 更多