首页 > 解决方案 > 如何在 laravel 5.6 中动态地将列添加到数据库

问题描述

我正在使用 Laravel 5.6 和 MySQL 上的 CRM,在我的客户部分,我想知道管理员可以根据需要向数据库添加尽可能多的列。

例如,一个客户可以有 2 到 20 部电话。

如何在前端使用加号图标动态添加它以生成输入,或者我应该将所有内容保存在一个带有长文本的列中?

还有 1 个问题是我应该如何处理前端的 AJAX 请求,或者 jQuery 可以完成这项工作?

Schema::create('clients', function (Blueprint $table) {
        $table->increments('id');
        $table->text('title');
        $table->longText('description');
        $table->integer('fax');
        $table->text('adrress');
        $table->integer('telephone1');
        $table->integer('telephone2');
        $table->integer('telephone3');
        $table->integer('telephone4');
        $table->timestamps();
    });

这是我的迁移,更准确地说,我想知道我应该制作 20 列直到telephone20或者有任何其他方式来放置它以满足管理员的需要?

标签: phpmysqllaravel

解决方案


我认为您最好创建另一个表来保存动态字段。

例如,一个名为client_info包含字段的表id,client_id,key,value

id | client_id | key          | value
-------------------------------------------------------------
 1 | 1         | phone_number | +98654123654
 2 | 1         | address      | 9 York Dr. Lorain, OH 44052
 3 | 2         | email        | MichaelKWarren@armyspy.com
 4 | 1         | email        | PhillipSOrtega@dayrep.com

推荐阅读