是否可以在 laravel 5 中创建动态迁移

Is it possible to create dynamic migrations in laravel 5

想知道是否可以在 Laravel 迁移文件中 运行 一个 foreach 循环。

例如:

public function up()
{

    Schema::create('tests', function (Blueprint $table) {


        $testarray = [
            'string' => 'name',
            'string' => 'lastname',
            'string' => 'random',
        ];


        $table->increments('id');

        foreach ($testarray as $type => $column)
        {
            $table->$type($column);
        }

        $table->rememberToken();
        $table->timestamps();
    });
}

不幸的是,以上内容会迁移;但是,只会创建数组中的最后一项。

我尝试了几种不同的方法都无济于事。

但是....考虑到至少有一些数据成功通过并且迁移实际上 运行s,应该有一种方法可以使这项工作成功。

我觉得好像我必须遗漏一些明显的东西才能使它正常工作。

在您的示例中,只会创建最后一项因为您多次将同一元素分配给 "string" 索引.

尝试这样的事情,也许:

$testarray = [
    ['string', 'name'],
    ['string', 'lastname'],
    ['string', 'random']
];

$table->increments('id');

foreach ($testarray as $column)
{
    $table->{$column[0]}($column[1]);
}

希望对您有所帮助!