Проблема с полем для телефона Yii2

Вот мой стол

id           int (primary_key)
name         varchar
contact_no   int
date         date

Типовые правила

public function rules()
{
return [
[['contact_no'], 'integer'],
];
}

Посмотреть

    <?php $form = ActiveForm::begin(['id' => 'form-info', 'layout' => 'horizontal']); ?>

...

<?php echo $form->field($model, 'contact_no') ?>

...

<?php ActiveForm::end(); ?>

Когда я сохраняю номер (например, 9999999999), он сохраняется как 2147483647 в таблице. Я проверяю форму сообщения и ее значение, которое я передаю в форме, но оно сохраняет другое.

Скажите, если я делаю это неправильно или что-то упустил?

2

Решение

Я предполагаю, что вы используете подписанный INT для этого столбца, в MySQL этот тип хранится в 4 байтах: от -2147483647 в 2147483647,

Вы должны использовать неподписанный INT или просто VARCHAR.

Прочитайте больше : http://dev.mysql.com/doc/refman/4.1/en/integer-types.html

4

Другие решения

Это ваша база данных содержит. проверьте, поддерживает ли ваша база данных 9999999999. Так как столбец базы данных может не поддерживать 10 цифр. Увеличьте размер столбца.

3