Laravel如何将数组存储到数据库中

时间:2018-03-13 14:44:31

标签: laravel

我将数据存储到array []中,当我执行dd(($ request));我可以看到带有日期的数组。

问我如何将它存储在数据库中?

叶片

<div class="form-group">
                    <label for="qualifiche">qualifiche:</label>
                    <input type="checkbox" name="array[]" value="uno" > Uno <br>
                    <input type="checkbox" name="array[]" value="due"> Due <br>
                    <input type="checkbox" name="array[]" value="tre"> Tre <br>
                </div>

1 个答案:

答案 0 :(得分:5)

您有两个主要选择:

选项1:

首先序列化数组并保存:

$arr = serialize($request['array']);

然后当您检索数据时,您执行以下操作:     // $ model-&gt;属性将替换为ur Model name和attribute     $ data = unserialize($ model-&gt; attribute);

以下是文档:http://us.php.net/manual/en/function.serialize.php

选项2:

从数组手动构造一个字符串并将其另存为字符串:     // !!是你可以使用任何你想要的分隔符...     $ data = implode(&#39; !!&#39;,$ request [&#39; array]);

你可以使用以下代码恢复数组:

$array = explode('!!', $model->attribute);

对于Laravel:

您可以编写一个getter来将数据作为数组获取,而无需手动执行:

public function getSomethingAttribute($value)
{
    // if using serialize
    return unserialize($value);
    // or if using implode
    return explode('!!', $value)

}

<强>附加

如果数据库字段设置为JSON或Text,您也可以将其存储为JSON ...如果案例解析数组并保存它。