【问题标题】:Alter database table using hasColumns laravel使用 hasColumns laravel 更改数据库表
【发布时间】:2017-05-15 19:56:40
【问题描述】:

我有一个名为table1 的表和名为idnamefield1field2field3 的列。

我想检查列是否存在。如果任何一列不存在,我想将该列添加到表中。

例如:我有名为idnamefield1field2field3 的列名。我想检查是否有任何名为field3field4field5 的列。在这个 field3 存在而其他 2 不存在。所以我想在table1 表中添加这两列。这可以使用hasColumns吗?或者建议我其他方式?

【问题讨论】:

  • 你应该改变数据库结构。您正在尝试做的是一种非常糟糕的做法。
  • 你的意思是没有可能的办法???
  • 有一些方法,但你不应该使用这些方法。我很确定您可以将 fieldX 数据作为 JSON 对象存储在 DB 中,而无需动态创建其他字段。或者寻找其他方式来存储数据。
  • 请阅读 hasMany 关系。
  • 你能给我一些例子吗?我是laravel的新手。并感谢您的回复

标签: php mysql database laravel schema


【解决方案1】:

在控制器的方法中编写如下代码:

    \Schema::table('table1', function (\Illuminate\Database\Schema\Blueprint $table) {
        if (!\Schema::hasColumns('table1', ['field4', 'field5'])) {
            $table->string('field4');
            $table->string('field5');
        }
    });

了解更多请访问Table Migration

【讨论】:

  • 感谢您的回复。其实我想用控制器来完成这一切。
  • 我已经编辑了答案。在你的控制器里面写上上面的代码
  • 如果代码像 if (!\Schema::hasColumns('table1', ['field3','field4', 'field5'])) {
  • 会有什么结果?
猜你喜欢
  • 2019-08-11
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多