1

我使用以下命令在 CakePHP 3 上创建了一个新的迁移脚本

bin/cake bake migration CreateOfficialTeams id:int name:string topic_id:int

id字段应该是主键,并且topic_id是外键。脚本像我想要的那样出来,除了topic_id出于某种原因是一个字符串,但我手动修复了它。

当我尝试运行脚本时,我收到一条错误消息:

Exception: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'id' in [/home/bradygp/workspace/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php, line 306]
2017-02-27 21:52:16 Error [PDOException] SQLSTATE[45S21]: Column already exists: 1060 Duplicate column name 'id'

我有其他列名为“id”的表,但这是一个用create()函数调用的新表,

4

3 回答 3

0

名为 id 的主键列将被隐式添加。CakePHPp 3 有关更多详细信息,您可以访问 Cakephp 迁移概述

于 2017-11-13T14:21:26.550 回答
0

不寻常的行为。

在 cakeBook 中:“名为 id 的主键列将被隐式添加。” 但在 bilder 中添加了迁移文件:

bin/cake bake migration_spanshot Initial

结果文件:

 $this->table('admin_menus')
            ->addColumn('id', 'integer', [
                'autoIncrement' => true,
                'default' => null,
                'limit' => 11,
                'null' => false,
            ])
            ->addPrimaryKey(['id'])
            ->addColumn('role_user_id', 'integer', [
                'default' => '0',
                'limit' => 11,
                'null' => true,
            ])
于 2022-01-21T10:00:52.483 回答
0

删除标识。ID 列是自动创建的,因此您无需编写它。
bin/cake bake 迁移 CreateOfficialTeams name:string topic_id:int

于 2017-11-13T06:56:48.150 回答