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 バイトに格納され-2147483647ます2147483647

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 に答える