我的代码迁移是这样的:
<tbody ng-repeat="eachTournament in tournaments | filter:{id:tournamentFilter.id, city: tournamentFilter.city||undefined} | orderBy:'name'">
我跑public function up()
{
Schema::create('satkers', function (Blueprint $table) {
$table->increments('id');
...
});
}
。然后,我在数据库管理员中看到了。它是这样的:
我不希望它自动递增,所以我怎样才能通过迁移文件来实现。
我该怎么做?
答案 0 :(得分:2)
在迁移中将其设置为integer()
,并使用primary()
设置主键:
$table->integer('id')->unsigned();
$table->primary('id');
另一种方法是define primary key in Eloquent model:
Eloquent还会假设每个表都有一个名为id的主键列。您可以定义$ primaryKey属性来覆盖此约定。
此外,Eloquent假定主键是递增的整数值,这意味着默认情况下主键将自动转换为int。如果您希望使用非递增或非数字主键,则必须将模型上的public $ incrementing属性设置为false。
答案 1 :(得分:0)
如果你想要id而不是自动增量,那么你必须使用
$table->integer('id')->unsigned();
如果不需要id
字段,请从迁移中删除$table->increments('id');
。
答案 2 :(得分:-1)
默认情况下,当您创建迁移文件时,它会假定表中会有一个自动递增的ID,但是如果您不想要它。 把它改成这个
$table->integer('id')->unsigned();
$table->primary('id');
保存您的migation文件。 通过php artisan回滚你的迁移。 然后运行php migrate命令。