【问题标题】:Laravel - creating dynamic form with different fieldsLaravel - 创建具有不同字段的动态表单
【发布时间】:2017-06-05 14:31:15
【问题描述】:

有没有办法使用 Laravel 和 MySQL 创建动态表单?我正在尝试构建一个表单,向其中添加不同的字段和输入类型,例如:

  1. 文本框、文本区域
  2. 单选按钮
  3. 复选框
  4. 文件上传

等等。我正在考虑类似于重力形式的东西。用户将通过说明哪些字段是必填的、可选的或不可用的来自定义表单。

到目前为止,我所做的是在数据库中正常创建字段,让另一个表负责它们的状态为强制、可选或关闭,然后相应地显示它们。

这可以正常工作,没有任何问题。但是,我试图通过定义某种通用方式来创建未来的表单,而不需要为数据库中的每个表单创建一个字段,从而使其更具动态性。请记住,这些字段现在只是文本框。

MySQL 会帮助做这样的表格,还是我需要使用 MongoDB 之类的东西?

【问题讨论】:

  • 数据库引擎没有区别。唯一的区别是您如何在您选择的任何引擎中构建数据。
  • @Atli 任何想法如何构建数据?

标签: php mysql mongodb forms laravel


【解决方案1】:

MySQL 的本质是静态的:你可以持久地存储东西 ;-)

如果我做对了,您希望用户创建一个表单,使用一个表单,该表单可以有任意数量的输入和类型,然后将其存储以供以后使用。

我的建议:对动态表单使用 VueJS - 它非常适合这样的事情!然后,当用户创建表单时,将完整的 HTML 保存为单列中的转义 b​​lob/文本 使用保存所有选择的选项的自定义 JS 对象。像这样的:

{
    field1: {
        type: text,
        placeholder: name,
        value: '',
    },
    field2: {
        type: textarea,
        placeholder: 'address',
        style: 'width: 50%'
    }
}

等等

这样就可以很容易地检索和使用(类似于重力表单)+ 通过一些工作,您甚至可以将其再次加载到您的自定义 VueJS 表单向导中,以便用户稍后对其进行编辑。

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2020-08-05
    相关资源
    最近更新 更多