gpt4 book ai didi

php - 如何使laravel Blueprints morphs方法在指定列之后添加列

转载 作者:可可西里 更新时间:2023-10-31 23:59:57 24 4
gpt4 key购买 nike

在创建迁移脚本时我可以做这样的事情

Schema::table('books', function(Blueprint $table)
{
$table->string('reference')->after('access');
});

这将在访问列之后创建我的引用列。但是如果我想使用 morph 我该怎么做。我正在考虑这样做

Schema::table('books', function(Blueprint $table)
{

$table->morphs('reference')->after('access');
});

但是,当我尝试运行迁移时,这会给我一个迁移错误。这是因为 morphs 没有 after 方法。我正在使用 laravel 5.1。我不确定访问后如何获得引用列。任何帮助或建议都会很棒。谢谢

最佳答案

$table->morphs() 只是一个快捷方式。这是它背后的功能(Laravel 5.5):

/**
* Add the proper columns for a polymorphic table.
*
* @param string $name
* @param string|null $indexName
* @return void
*/
public function morphs($name, $indexName = null)
{
$this->unsignedInteger("{$name}_id");

$this->string("{$name}_type");

$this->index(["{$name}_id", "{$name}_type"], $indexName);
}

所以这具有相同的效果:

Schema::table('books', function (Blueprint $table) {
$table->unsignedInteger("reference_id")->after('access');
$table->string("reference_type")->after('reference_id');
$table->index(["reference_id", "reference_type"]);
});

关于php - 如何使laravel Blueprints morphs方法在指定列之后添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com