试图在PostgreSQL中的空表和现有表中添加列

时间:2018-10-04 03:38:14

标签: laravel postgresql

我有一个项目来创建带有列的动态表

   $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)

1 个答案:

答案 0 :(得分:0)

在您的foreach()循环中尝试以下操作:

$table->{$column['originalType']}($column['originalName'])->nullable();