我有一张桌子,我想在id中添加 - > unsigned()。目前,迁移看起来像是:$table->increments('id');
所以我想进行一次新的迁移,将其设置为unsigned,但文档中没有太多可以做到这一点。这是正确的方法:
public function up()
{
Schema::table('authors', function($t) {
$t->unsigned('id', 'authors_id_unsigned');
});
}
public function down()
{
Schema::table('authors', function($t) {
$t->dropUnsigned('authors_id_unsigned');
});
}
我只是在这里猜测,因为我在文档中找不到它。
答案 0 :(得分:10)
您可以修改Laravel 5+中的列,但必须将doctrine / dbal依赖项添加到composer.json文件中。
public function up()
{
Schema::table('my_table', function (Blueprint $table) {
$table->integer('my_column')->unsigned()->change();
});
}
public function down()
{
Schema::table('my_table', function (Blueprint $table) {
$table->integer('my_column')->change();
});
}
答案 1 :(得分:5)
您无法使用Schema Builder更改此类详细信息。
要更改它,您必须运行原始查询。要实现这一点,您的迁移应该如下所示:
public function up()
{
Schema::table('authors', function($t) {
DB::statement("ALTER TABLE `authors` CHANGE COLUMN `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT FIRST");
});
}
public function down()
{
Schema::table('authors', function($t) {
DB::statement("ALTER TABLE `authors` CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT FIRST");
});
}