Эта статья из цикла по типам полей в БД через миграции Yii2. Список статей из этого цикла:
Добавление поля типа INTEGER и уставновление для него аттрибутов
Процесс создания миграции в этой и последующих заметках этого цикла, рассматриваться не будет. Он уже достаточно хорошо описан здесь и еще немного здесь.
И так, вам понадобилось добавить в таблицу поле, в котором будет храниться число (не дробное). При этом надо убедиться, что в этом поле будет храниться только положительное число, т.е. без знака минус.
Добавляется это поле посредством метода $this->integer()
$this->createTable('tableName', [ ... 'user_id' => $this->integer(), ... ]);
Это равносильно такому SQL запросу:
`user_id` int(11) DEFAULT NULL,
Вроде бы все устраивает, но теперь возникла необходимость убедиться в том, что в этом поле будут только положительные числа. В таком случае это поле в нашей миграции должно иметь такой вид:
$this->createTable('tableName', [ ... 'user_id' => $this->integer()->unsigned(), ... ]);
Обратите внимание на метод unsigned(). Именно он задаст нужное значение аттрибута поля user_id. Также, если нам надо уменьшить кол-во цифр в этом поле, мы просто допишем необходимое кол-во:
$this->createTable('tableName', [ ... 'user_id' => $this->integer(5)->unsigned(), ... ]);
Если нам понадобилось установить для этого поля какое-то значение по-умолчанию (только положительные значения), это делается также легко, как и предыдущие манипуляции:
$this->createTable('tableName', [ ... 'user_id' => $this->integer(5)->defaultValue(3)->unsigned(), ... ]);
Пока на этом все.