php - 如何在 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
或者有任何其他方式来放置它以满足管理员的需要?
解决方案
我认为您最好创建另一个表来保存动态字段。
例如,一个名为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
推荐阅读
- arrays - int 数组的长度
- azure-ad-b2c - 如何使用电子邮件或电话以及唯一电子邮件/电话和自定义字段使用具有 MFA 的用户名配置 Azure b2c 注册和登录?
- semantic-release - npm semantic-release - 指定版本
- c# - 如何在 Xamarin AppShell 中动态添加 MenuItem
- node.js - VueJS - 未捕获的 RangeError:超出最大调用堆栈大小
- google-apps-script - 可以在将替换多个值的谷歌表格中自动运行查找和替换脚本吗?
- spring - Spring Boot 从上下文路径重定向到 localhost
- angular - Observable:检查返回值是否为空
- css - 自定义 Angular Material 组件尺寸
- azure - Azure Function App 突然停止工作