如何在Laravel的Schema中创建签名增量?

时间:2014-01-23 04:55:34

标签: php laravel

我的迁移文件中有以下内容:

public function up()
{
   Schema::create('Users', function($table)
   {
      $table->engine='InnoDB';
      $table->increments('id');
      $table->string('name', 255);
   });
}

到目前为止,整个应用程序使用了signed个ID,我不想打破这个,所以如何才能使它们成为signed?我知道默认值是unsigned并且有一个->unsigned()修饰符(我不明白,如果这是默认值,那是什么)但是从这个我认为有一个{{ 1}},但没有。下面的代码运行没有错误但是当我在phpMyAdmin中看到它时,id仍然是无符号的:

->signed()

我搜索了officialnon official文档,但没有人提到这一点。那我怎样才能做到Schema::create('Users', function($table) { $table->engine='InnoDB'; $table->increments('id')->signed(); $table->string('name', 255); });

1 个答案:

答案 0 :(得分:3)

设置为自动递增的整数列如果您还想要签名,则应该只做技巧。

$table->integer('id', true);

来自:framework / src / Illuminate / Database / Schema / Blueprint.php

/**
 * Create a new integer column on the table.
 *
 * @param  string  $column
 * @param  bool  $autoIncrement
 * @param  bool  $unsigned
 * @return \Illuminate\Support\Fluent
 */
public function integer($column, $autoIncrement = false, $unsigned = false)
{
  return $this->addColumn('integer', $column, compact('autoIncrement', 'unsigned'));
}