【问题标题】:Allowing users create tables on the fly using laravel允许用户使用 laravel 动态创建表
【发布时间】:2018-07-15 21:34:44
【问题描述】:

我正在使用 Laravel 构建一个新应用程序,我希望用户/所有者能够为所有者创建的每个事件创建注册表。

该应用程序允许所有者创建一个活动,然后关联一个由感兴趣的参与者填写的注册表单...表单字段将由活动所有者决定,数据将存储在创建的新表中。

如果有任何其他方法可以实现这一点..我愿意接受建议

【问题讨论】:

  • 那么,你是在 laravel 上创建 phpmyadmin 吗?
  • 技术上不,我希望管理员创建一个表单来作为用户的字段。也许我尝试使用的方法不是最好的......
  • 您会考虑使用文档存储数据库而不是关系数据库吗?如果您使用 mongo 之类的东西,那么人们可以重新设计他们的表单,而不会损害或重组数据库。
  • 肯定...我正在考虑,但想在这里问这个问题以获得专家建议...
  • 哈哈 - 网站上可能有 5 位专家 - 我不是其中之一 - 但考虑到它的价值 - 我会选择 nosql。

标签: php forms laravel eloquent database-migration


【解决方案1】:

您可以这样做的一种方法是将表单定义为 JSON 或 XML,它可能类似于:

{
  form_name: 'value',
  fields: [
    name: 'string',
    surname: 'string',
    age: 'int'
  ]
}

并将其保存在数据库中的表格表格中,该表格具有外键(管理员)和与用户的关系 M:N。这样您就可以定义表单并将用户注册到事件中,而无需添加其他表格。

【讨论】:

  • @pedmindset - 这可能是一个很好的中间地带,因为 mysql 现在确实支持 json cols。
  • 所以管理员通过定义表单名称和字段来创建表。然后当用户添加数据时,它作为新行保存在字段值中...我得到了没错...#AlexCovizzi @TarekAdam
  • 不,您将 JSON 添加为表中的列 (Events),当用户参加活动时,数据将保存在数据透视表中的列中,位于事件和用户之间 (UserAttendsEvent)
猜你喜欢
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多