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

Mat*_*teo 0 laravel

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

问我如何将它存储在DB中?

<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>
Run Code Online (Sandbox Code Playgroud)

Sle*_*ren 6

您有两个主要选择:

选项1:

首先序列化数组并保存:

$arr = serialize($request['array']);
Run Code Online (Sandbox Code Playgroud)

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

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

选项2:

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

你可以使用以下方法恢复数组:

$array = explode('!!', $model->attribute);
Run Code Online (Sandbox Code Playgroud)

对于Laravel:

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

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

}
Run Code Online (Sandbox Code Playgroud)

额外:

如果数据库字段设置为JSON或Text,您也可以将其存储为JSON ...如果是这种情况解析数组并保存它.