当前位置: 首页 > 知识库问答 >
问题:

正在尝试在postgresql中的空表和现有表中添加列

微生旻
2023-03-14

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

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


    });

此代码给出**$表上的错误数组到字符串转换-

Schema::connection('pgsql')->table($tableName, function($table) use ($addThese){

            foreach ($addThese as $column)

    $val = $column['originalType'].'("'.$column['originalName'].'")->nullable()';
           $table->$val;

出错

[ErrorException]
未定义的属性:Illumb\Database\Schema\Blueprint::
$string(名称)

共有1个答案

彭俊智
2023-03-14

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

$table->{$column['originalType']}($column['originalName'])->nullable();
 类似资料:
  • 我在laravel 5.3中工作,我想在现有表格中添加列(即课程章节)。所以我已经通过命令创建了迁移文件 迁移文件已经创建,我已经添加了一些代码来在该表中添加列,如下所示 我执行命令后 PHP工匠迁移 表没有被创建,而不是我得到了错误 任何答案? 我现有的表迁移文件是

  • 我有以下代码: 代码JS: 运行此代码后,具有以下形式 我想在最后一个括号前添加空格,如下例所示。 您能告诉我如何接受对代码的更改,以便保留空白吗? 提前感谢! 编辑: 我添加了这个代码来调用这里作为添加空白。。。

  • 我不知道如何使用Laravel框架将新列添加到现有的数据库表中。 我试图使用…编辑迁移文件。。。 在终端,我执行和。 如何添加新列?

  • 我将 0 到 1000 之间的所有数字相加,这些数字是倍数或 3 和 5。我只是在将它们加起来时遇到麻烦。我不断收到错误消息:线程“main”java.lang.IndexOutOfBounds异常异常:索引:468,大小:468 我的代码 有人知道原因吗?我不明白为什么它不起作用。它打印出数组列表,所以我肯定应该将元素添加在一起……

  • 我试图添加一列到一个现有的表(mysql)对我laravel项目,但我有几个问题 我运行命令php artisan make:migration add_time_to_customers--table=customers这显然会创建我的新迁移模板 但是我在这个实例上有几个数据库,所以我担心这个新的迁移适用于正确的数据库和表?我已经检查了前面的一列添加迁移,我看到一个引用它需要改变的实际数据库?

  • 在mysql工作台中,我试图执行 这是一个查询,但是我收到了这个消息 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项-