想知道是否可以在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();
});
}
不幸的是,上面会迁移;但是,只会创建数组中的最后一项。
我尝试了几种不同的方法无济于事。
但是......考虑到这一点,至少有一些数据通过并且迁移实际运行,应该有办法使这项工作。
我觉得好像我必须遗漏一些显而易见的东西才能让它发挥作用。
答案 0 :(得分:4)
在您的示例中,只会创建最后一项,因为您已经多次分配"字符串" 索引相同的元素
尝试这样的事情,或许:
$testarray = [
['string', 'name'],
['string', 'lastname'],
['string', 'random']
];
$table->increments('id');
foreach ($testarray as $column)
{
$table->{$column[0]}($column[1]);
}
希望它有所帮助!