如何使用migration Plugin将tinyint添加到cakephp 3中的数据库字段?

时间:2016-01-22 12:04:43

标签: php cakephp cakephp-3.0

我正在使用cakephp 3迁移插件来设计数据库。我想在字段中添加status字段tinyint,限制为1,我尝试过以下操作,但没有任何补充。

尝试1.(失败)

$table->addColumn('status', 'smallinteger', [
        'default' => 0,
        'limit' => 1,
        'null' => false,
]);

尝试2.(失败)

$table->addColumn('status', 'tinyint', [
        'default' => 0,
        'limit' => 1,
        'null' => false,
]);

我找不到任何相同的文档可能就在那里而我错过了Docs Link

3 个答案:

答案 0 :(得分:6)

添加字段类型的布尔值会添加长度为1的tinyint列

$table
      ->addColumn('status', 'boolean', [
                'default' => false,
                'null' => false,
            ]);

答案 1 :(得分:1)

迁移插件使用Phinx库来执行这些更新。添加 tinyint 列应使用MysqlAdapter::INT_TINY常量完成,如下所示:

use Phinx\Db\Adapter\MysqlAdapter;
...
$table->addColumn('status', 'tinyint', [
    'default' => 0,
    'limit' => MysqlAdapter::INT_TINY, // 255
    'null' => false,
]);

来源:Phinx Mysql Tinyint

答案 2 :(得分:0)

花了我一段时间才弄清楚如何添加常规的非布尔tinyint,在寻找答案时,我一直遇到这个问题。因此,对于像我这样的其他人,就是这样:

use Phinx\Db\Adapter\MysqlAdapter;
    
$table->addColumn('status', 'integer', [
    'default' => 0,
    'limit' => MysqlAdapter::INT_TINY,
    'null' => false,
]);