Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 存储与mysql表的列相关的值的最佳方法?_Php_Mysql_Reactjs_Laravel - Fatal编程技术网

Php 存储与mysql表的列相关的值的最佳方法?

Php 存储与mysql表的列相关的值的最佳方法?,php,mysql,reactjs,laravel,Php,Mysql,Reactjs,Laravel,如果问题不清楚,道歉。没有解释就很难表达。所以我从mysql数据库动态获取表数据,并在我的前端应用程序中使用它。在我的前端,我有一个包含对象的列数组。每个对象都有不同的属性,如标题、字段、类型、隐藏等。。。这些对象中的每一个都表示一列及其关联的设置。我已经动态地获得了列名,我知道如何获得类型,但我不确定如何存储布尔设置,如可编辑、筛选和隐藏 我考虑将它们存储在JSON配置文件中,或者创建一个单独的表来存储每列的所有设置 //use map function to create colum

如果问题不清楚,道歉。没有解释就很难表达。所以我从mysql数据库动态获取表数据,并在我的前端应用程序中使用它。在我的前端,我有一个包含对象的列数组。每个对象都有不同的属性,如标题、字段、类型、隐藏等。。。这些对象中的每一个都表示一列及其关联的设置。我已经动态地获得了列名,我知道如何获得类型,但我不确定如何存储布尔设置,如可编辑、筛选和隐藏

我考虑将它们存储在JSON配置文件中,或者创建一个单独的表来存储每列的所有设置

    //use map function to create columns from column_fields in props
    const columns2 = props.column_fields.map(column_name => {
        return (
            //TODO: correctly configure all attributes
            {title:column_name, field:column_name, type:'string', editable:'true', filtering:'true', editable:'true', hidden:'false'}
        )
    })
像这样的

const props = { column_fields: ["id", "name", "age"] };

const column_settings = {
  id: {
    type: "string",
    editable: true,
    filtering: true,
    editable: true,
    hidden: false
  },
  name: {
    type: "string",
    editable: true,
    filtering: true,
    editable: true,
    hidden: false
  },
  age: {
    type: "number",
    editable: true,
    filtering: true,
    editable: true,
    hidden: false
  }
};

//use map function to create columns from column_fields in props
const columns2 = props.column_fields.map(column_name => {
  return (
    //TODO: correctly configure all attributes
    {
      title: column_name,
      field: column_name,
      ...column_settings[column_name]
    }
  );
});

因此,如果有人偶然发现了这一点,我只需使用一个JSON文件来存储我需要的关于特定表列的所有信息,例如:

{
    "table1": {
        "id": {
            "type": "numeric",
            "hidden": false,
            "filtering": true,
            "editable": "never"
        },
        "name": {
            "type": "string",
            "hidden": false,
            "filtering": true,
            "editable": null
        },
    },
    "table2": {
        "phone": {
            "type": "string",
            "hidden": false,
            "filtering": true,
            "editable": null
        },
        "age": {
            "type": "numeric",
            "hidden": false,
            "filtering": true,
            "editable": null
        }
    }
}
我在服务器端php中获取此文件,并将所有内容发送到前端。现在我可以通过React项目中的道具访问值

    //use map function to create columns from column_fields in props
    let i = 0;
    let columns = props.column_fields.map(column => {
        i++;
        if (column.field != 'updated_at') {
            return ({
                title: column.field, field: column.field, type: props.column_fields[i - 1].type, editable: props.column_fields[i - 1].editable,
                filtering: props.column_fields[i - 1].filtering, hidden: props.column_fields[i - 1].hidden
            })
        }
    })

希望这种方法能长期有效。

editable:true
无需引用第一个问题是什么使得某些列不可编辑、不可过滤或不可见JavaScript客户端“控制”它的目标是什么?@RaymondNijland我正在使用material table()。它允许您在表中启用/禁用过滤等功能。有时,我动态获取的表列要求这些设置为true或false。知道在哪里存储这些信息是我的问题。我可能可以在服务器端执行此操作,但问题仍然存在。是的,但真值和假值是硬编码的。我的代码是动态的,因此无论从数据库中检索什么表或有什么列,设置都是特定表的自定义设置。例如,我可能调用另一个表中的数据,而该表可能需要隐藏年龄。我相信这可能只是一个模板,您可以从rest端点检索该表的数据。很难理解你需要什么,因为你没有提供所有的信息,所以我可以理解你的问题