2

这是我的桌子

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。我检查表单帖子及其在表单中传递的相同值,但它保存的值不同。

告诉我我做错了什么或遗漏了什么?

4

2 回答 2

4

我假设您为此列使用带符号的 INT,在 MySQL 中,此类型存储在 4 个字节上:从-21474836472147483647

您应该使用 unsigned INT 或简单的 VARCHAR。

阅读更多:http ://dev.mysql.com/doc/refman/4.1/en/integer-types.html

于 2015-03-02T07:49:07.737 回答
3

它是您的数据库包含的 . 请检查您的数据库是否支持 9999999999。因为数据库列可能不支持 10 位 .. 增加您的列大小

于 2015-03-02T07:51:33.550 回答