2016-12-29 94 views
2

我的代码迁移是这样的:如何在迁移laravel 5.3中设置不自动增量?

public function up() 
{ 
    Schema::create('satkers', function (Blueprint $table) { 
     $table->increments('id'); 
     ... 
    }); 
} 

我跑php artisan migrate。然后,我在数据库管理员看到。就像这样:enter image description here

我不希望它自动增加,所以我怎么能通过迁移文件来做到这一点。

我该怎么办呢?

回答

2

primary()设置为迁移integer()并设置主键:

$table->integer('id')->unsigned(); 
$table->primary('id'); 

另一种方法是define primary key in Eloquent model

口才也将承担每个表都有一个主键名为id列。你可以定义一个$ primaryKey属性来覆盖这个约定。

另外,Eloquent假定主键是一个递增的整数值,这意味着默认情况下主键会自动转换为int。如果您希望使用非递增或非数字主键,则必须将模型上的public $ incrementing属性设置为false。

+1

非常感谢。有用 –

0

,如果你想ID而不是自动递增,那么你必须

$table->integer('id')->unsigned(); 

如果id场则不需要从迁移中删除$table->increments('id');使用。

+0

OP不希望为空或无符号,所以你应该删除' - > nullable()'并添加' - > unsigned()'。 –

+1

tnx为您的更新 –

-1

默认情况下,当您创建迁移文件时,它将假定表中会有一个自动递增的ID,但是如果您不需要它。 将其更改为此

$table->integer('id')->unsigned(); 
$table->primary('id'); 

保存您的migation文件。 通过php技术人员回滚您的迁移。 ,然后运行php migrate命令。

相关问题