在Laravel迁移中创建一个具有自定义大小的小整数列

时间:2017-08-21 18:35:45

标签: mysql laravel laravel-migrations

如何使用laravel迁移向MySQL添加微小整数列?我想这个代码

$table->addColumn('tinyInteger', 'birth_day', ['lenght' => 2]);

但它创建了TINYINT(4)列。我不知道如何解决这个问题。请不要问我为什么只有一天,不是完整的约会。这是应用程序的业务逻辑。

3 个答案:

答案 0 :(得分:1)

在我看来,您在拼写“长度”时错了,也许尝试unmodifiableList

答案 1 :(得分:0)

我用纯sql解决了我的问题

DB::statement("ALTER TABLE `users` 
ADD `birth_day` TINYINT(2) DEFAULT NULL AFTER `lastname`");

答案 2 :(得分:0)

   /**
     * Create a new tiny integer (1-byte) column on the table.
     *
     * @param  string  $column
     * @param  bool  $autoIncrement
     * @param  bool  $unsigned
     * @return \Illuminate\Support\Fluent
     */
    public function tinyInteger($column, $autoIncrement = false, $unsigned = false)
    {
        return $this->addColumn('tinyInteger', $column, compact('autoIncrement', 'unsigned'));
    }

这是Blueprint.php中的tinyInteger()函数。如您所见,它在这里需要一个布尔参数。似乎您正在尝试为size添加参数。您无法在Laravel中指定tinyInt的大小。

代替使用

$table->tinyInteger('birth_day'); // `birth_day` tinyint(3)