Вот мой стол
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 в таблице. Я проверяю форму сообщения и ее значение, которое я передаю в форме, но оно сохраняет другое.
Скажите, если я делаю это неправильно или что-то упустил?
Я предполагаю, что вы используете подписанный INT для этого столбца, в MySQL этот тип хранится в 4 байтах: от -2147483647
в 2147483647
,
Вы должны использовать неподписанный INT или просто VARCHAR.
Прочитайте больше : http://dev.mysql.com/doc/refman/4.1/en/integer-types.html
Это ваша база данных содержит. проверьте, поддерживает ли ваша база данных 9999999999. Так как столбец базы данных может не поддерживать 10 цифр. Увеличьте размер столбца.