我有一个项目来创建带有列的动态表
$addThese = array();
foreach ($fields['columns'] as $columnNew){
$add = true;
foreach ($structureOld['columns'] as $columnOld) {
// Column exists
if ($columnOld['originalName'] == $columnNew['originalName'])
$add = false;
}
// No match, add column
if ($add)
$addThese[] = $columnNew;
}
Schema::connection('pgsql')->table($tableName, function($table) use ($addThese){
foreach ($addThese as $column)
$table->$column['originalType']($column['originalName'])->nullable();
});
此代码为** $ table-> $ column'originalType'-> nullable();上的字符串转换提供错误数组。 ** 以及在更改此类代码
时Schema::connection('pgsql')->table($tableName, function($table) use ($addThese){
foreach ($addThese as $column)
$val = $column['originalType'].'("'.$column['originalName'].'")->nullable()';
$table->$val;
给出错误
[ErrorException]
未定义的属性:Illuminate \ Database \ Schema \ Blueprint ::
$ string(name)
答案 0 :(得分:0)
在您的foreach()循环中尝试以下操作:
$table->{$column['originalType']}($column['originalName'])->nullable();