Модификатор unsigned в Laravel
Обычное целое поле integer
может быть отрицательным. Но возраст,
количество товара на складе или
число голосов не бывает меньше нуля.
Для таких случаев используют
модификатор unsigned:
<?php
$table->integer('age')->unsigned();
$table->integer('vote')->unsigned();
?>
Беззнаковое поле UNSIGNED
хранит только ноль и положительные
числа, зато верхняя граница диапазона
становится больше.
Пример миграции таблицы постов с беззнаковым счетчиком голосов:
<?php
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('text');
$table->integer('votes')->unsigned()->default(0);
$table->timestamps();
});
}
?>
unsigned применяют к целочисленным
типам - integer, bigInteger
и подобным. К строкам и датам
этот модификатор не подходит.
Сделайте в таблице с юзерами
поле age беззнаковым.
Зачем нужен unsigned,
если можно проверять значение
в PHP-коде?