Laravel 5.5在迁移文件中设置整数字段的大小

New*_*_TT 9 laravel laravel-5.5

我是laravel的新手.

现在我使用migrate命令创建一个表,但该字段的长度不适用.Laravel不提供此选项.?

以下是我的代码:

$table->increments('id')->length(11);
$table->dateTime('created_time');
$table->integer('bank_id')->length(11);
$table->tinyInteger('is_black')->length(1);
Run Code Online (Sandbox Code Playgroud)

字段的长度is_black应为1,但实际上生成为4.如何解决此问题?

任何建议或意见将不胜感激.

先感谢您

Ale*_*nin 13

你不能这样做,但你可以使用不同类型的整数:

$table->bigInteger()
$table->mediumInteger()
$table->integer()
$table->smallInteger()
$table->tinyInteger()
Run Code Online (Sandbox Code Playgroud)

https://laravel.com/docs/5.5/migrations#columns

  • 我不能这样做??.. 原来如此。谢谢您的回答 (2认同)

mfa*_*del 6

根据https://laravel.com/docs/5.5/migrations,您可以使用以下类型之一:

$table->bigInteger('votes');
$table->integer('votes');

$table->mediumInteger('votes'); 
$table->smallInteger('votes');
$table->tinyInteger('votes');
$table->unsignedBigInteger('votes');
$table->unsignedMediumInteger('votes'); 
$table->unsignedSmallInteger('votes');  
$table->unsignedTinyInteger('votes');   
Run Code Online (Sandbox Code Playgroud)

  • 其实有5种。 (3认同)
  • unsigned 只是 `integer()->unsigned()` 的快捷方式,所以它不是一个类型。 (3认同)
  • 好的,但是如何选择长度呢? (2认同)

小智 5

根据https://laravel.com/docs/5.1/migrations,从 Laravel 5.1 开始,您可以使用boolean列类型创建TINYINT长度为 1 (MySQL)的“类布尔值” 。因此,例如:

$table->boolean('nameOfColumn');
Run Code Online (Sandbox Code Playgroud)