私は周りを探していて、質問は数回尋ねられましたが、誰もそれに対して明確な答えを出すことができないようです。スキーマを使用してテーブル列の整数の長さをどのように指定しますか?
私は誰かが提案しているのを見ました:
_$table->integer('post')->length(11);
_
しかし、それは機能しません-少なくともLaravel 4.2の場合-それでも、列はint(10)
として生成されます。
整数の長さを指定するための組み込みメソッドはありますか?
MySQLを使用している場合、整数列の長さを指定することはできません。 http://dev.mysql.com/doc/refman/5.1/en/integer-types.html で説明されている使用可能な整数型の1つからのみ選択できます。
したがって、Laravelでも整数の長さを設定することはできません。 http://laravel.com/docs/schema#adding-列 。
増分IDと一致するように長さ10を指定する必要があると思います(外部キーを宣言する場合)。もしそうなら、あなたは使う必要があります:
$table->unsignedInteger('some_id_reference');
一般的な状況で、コピーして貼り付けやすいテーブルを作成すると思います。
あなたが署名した場合doは負の値を必要とし、あなたしない。
|タイプ| Eloquent(スキーマビルダー)|最小|最大| | ---------------- ----------------------------------------- | ------- | ------ | | TINYINT(署名済み)| $ table-> signedTinyInteger( 'foo')| -128 | 127 | | TINYINT(符号なし)| $ table-> unsignedTinyInteger( 'foo')| 0 | 255 | | SMALLINT(署名済み)| $ table-> signedSmallInteger( 'foo')| -32768 | 32767 | | SMALLINT(符号なし)| $ table-> unsignedSmallInteger( 'foo')| 0 | 65535 |
より大きな整数型については、以下を参照してください---(https://dev.mysql.com/doc/refman/5.5/en/integer-types.html
$table->bigInteger('variable');
$table->integer('variable');
$table->mediumInteger('variable');
$table->smallInteger('variable');
$table->tinyInteger('variable');
$table->unsignedBigInteger('variable');
$table->unsignedMediumInteger('variable');
$table->unsignedSmallInteger('variable');
$table->unsignedTinyInteger('variable');
はい、次のコマンドを使用してデフォルトの列の長さを変更できます。
$table->string('any_text',35)->change();
次のコマンドを使用してnull可能にすることもできます。
$table->string('any_text',35)->nullable()->change();
それがあなたのためにうまくいくことを願っています:)
Laravel 5:
$table->addColumn('integer', 'post', ['length' => '10']); // Creates INT(10)
$table->addColumn('integer', 'post', ['length' => '10'])->unsigned(); // Creates Unsigned INT(10)
$table->unsignedInteger('post'); // Creates Unsigned INT(10)
$table->integer('post'); // Creates INT(11)
$table->integer('post')->unsigned(); // Creates Unsigned INT(11)