Laravel将数组值存储/插入数据库MySQL

时间:2018-11-24 22:48:39

标签: php mysql arrays laravel

我的代码在这里的问题是我无法在MySQL数据库中存储或插入数组值,这是我的控制器代码,请帮助我。谢谢。我在Controller中的代码没有数组等等。我不知道如何将其转换为数组。

控制器

    public function store(Request $request)
{
    $this->validate($request,[
        'city' => 'required'

    ]); 


   $citi = new City;
   $citi->city = $request->input('city');
   $citi->save();

   return redirect('/lugar')->with('success', 'Data Inserted');
}

查看

<td> {{Form::text('city[]', '', ['class' => 'form-control name_list', 'placeholder' => 'Add Country'])}} </td>

3 个答案:

答案 0 :(得分:0)

您无法在MySQL中存储数组,如果将其与Mongo(NoSQL)进行比较,它就会有所不同。

您可以做的是,将该数组转换为json字符串。因此json_encode($request->city)并将其保存。

然后,如果要从数据库中检索到它的值后立即对其进行修改,则可以使用json_decode($data->city)将其转换为数组。

答案 1 :(得分:0)

您实际上可以使用序列化或json_encode保存此内容。

使用序列化:

$citi->city = serialize($request->input('city'));

使用json_encode:

$citi->city = json_encode($request->input('city'));

然后只需在刀片文件上使用反序列化 json_decode

答案 2 :(得分:-1)

您可以使用serialize()或我认为json_encode()对数组进行字符串化。 还有另一个主题讨论了类似的问题。

here