【问题标题】:Trying to add column in empty and existing table in postgresql尝试在 postgresql 中的空表和现有表中添加列
【发布时间】:2019-03-09 08:49:45
【问题描述】:

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

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

报错

[错误异常]
未定义属性:Illuminate\Database\Schema\Blueprint::
$字符串(名称)

【问题讨论】:

    标签: laravel postgresql


    【解决方案1】:

    在你的 foreach() 循环中试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2020-02-03
      • 2021-12-11
      • 2020-06-26
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多