php - 如何在 Laravel 5 中将动态字段数据保存到数据库

标签 php mysql laravel-5

如何将动态字段保存到数据库中,问题是我不知道我们模块中的字段名称,用户将动态添加具有名称的字段,并且当用户检查表单时,我会将这些字段名称保存在数据库中他在帖子表单中添加了字段,因此我想将该字段数据保存到数据库中。这是我的代码

<form>
<input type="text" name="firstname"  id="firstname">
<?php foreach($extrafields as $extrafields1 )
{
?>
<input type="<?php    $extrafields1->type; ?>" name="<?php    $extrafields1->name; ?>"  id="<?php    $extrafields1->id; ?>"  <?php    $extrafields1->extraparameters; ?>>

<?php
}
</form>

最佳答案

如果您无法定义数据库中的列名称,则必须将数据保存为 JSON。因此,您需要在模型上创建一个名为 extra_parameters 的列,该列将是一个文本列。当您发布表单数据时,您需要更新模型,如下所示:

//remove the expected parameters so you only have the extra ones
$extraparams = $request->except(['firstname','...']);

$model->extra_parameters = $extraparams;

您还应该将该列转换为模型中的数组。这允许您使用数组设置$model->extra_parameters,并且在保存到数据库时它会自动将其转换为JSON。它还允许您使用 $model->extra_parameters['param_name'] 访问字段。

//in your model file
protected $casts = [
    'extra_parameters' => 'array'
];

请参阅此处的数组转换部分以了解更多信息:https://laravel.com/docs/master/eloquent-mutators#attribute-casting

关于php - 如何在 Laravel 5 中将动态字段数据保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710404/

相关文章:

php - 如何回显对象或哈希类型字段php

MySQL 错误 'must be boolean'

laravel - 命令 php artisan 在其他网络上服务?

javascript - 如何在Google map api中存储标记和中心 map

paypal - 我在 laravel 5 中收到 fatal error random_bytes()

php - 通过 PHP 设置使用 CSV 数据的表中行的样式

PHP 使用 imagettftext() 和 imagefttext() 函数更新字距调整问题

PHPEXCEL 获取在 excel 文件中可见的格式化日期

mysql - 有条件地连接两个具有随机结果顺序的表的最有效方法是什么

mysql - Sqoop 导入失败,出现 'on clause' 中的未知列