是否可以在laravel 5

时间:2015-09-13 02:28:36

标签: laravel migration

想知道是否可以在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();
    });
}
不幸的是,上面会迁移;但是,只会创建数组中的最后一项。

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

但是......考虑到这一点,至少有一些数据通过并且迁移实际运行,应该有办法使这项工作。

我觉得好像我必须遗漏一些显而易见的东西才能让它发挥作用。

1 个答案:

答案 0 :(得分:4)

在您的示例中,只会创建最后一项,因为您已经多次分配"字符串" 索引相同的元素

尝试这样的事情,或许:

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

$table->increments('id');

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

希望它有所帮助!