Laravel Eloquent:after() 方法未在某一列后添加列

11

以下代码会在特定列之后而不是末尾生成列。我使用的是Laravel 5.1

public function up()
    {
        Schema::table('project', function (Blueprint $table) {
            $table->enum('is_it',['yes','no'])->after('goals')->nullable();
        });
    }

我正在使用PostgreSQL 9.4


3
这仅适用于MySQL,你正在使用MySQL吗? - Xethron
应该提到一下,没有 postgresql - Volatil3
2个回答

19

当你使用PostgreSQL时,这是不可能的。该功能仅由MySQL支持。

列修饰器文档中,方法after仅适用于MySQL,并且您还可以在这里看到有关它的讨论:#14298

我希望这解决了你的疑惑,敬礼!


0

正如其他人所提到的,它不能在Postgresql上工作,但是在使用MySQL的 Laravel 8 中也存在这个问题。

这与您如何链接它们有关,在Laravel 8中它将不起作用:

$table->foreignIdFor(\App\Center::class)->references('id')->on('centers')->after('id');

但是这样就可以了:

$table->foreignIdFor(\App\Center::class)->after('id')->references('id')->on('centers');.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接