是否可以在 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]);
}
希望对您有所帮助!
想知道是否可以在 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]);
}
希望对您有所帮助!