【问题标题】:Laravel Store/Insert Array Values to Database MysqlLaravel 存储/插入数组值到数据库 Mysql
【发布时间】:2019-04-27 00:43:55
【问题描述】:

我的代码中的问题是我无法在数据库 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>

【问题讨论】:

标签: php mysql arrays laravel


【解决方案1】:

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

您可以做的是,将该数组转换为 json 字符串。所以json_encode($request-&gt;city) 并保存它。

然后,如果您想修改从 DB 中检索到的值,可以使用 json_decode($data-&gt;city) 将其转回数组。

【讨论】:

    【解决方案2】:

    您实际上可以使用 serialize 或 json_encode 保存它。

    使用序列化:

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

    使用 json_encode:

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

    然后只需在您的刀片文件上使用 unserializejson_decode

    【讨论】:

    • 如何反序列化??
    • 数组现在在我的数据库中,但它们是序列化的。我怎样才能对它们进行反序列化?他们有这个 a:2:{i:0;s:7:"New York";i:1;s:8:"Chicago";} 的值
    • 嘿@kapitan,除了这个序列号的 a:2:{i:0;s:7: 之外,一切都很好。我可以删除它并更改正常吗?帮助我,这样我就可以对您的答案进行投票并将其标记为 asnwer ty
    • 反序列化($myvariable) 或 json_decode($myvariable)
    猜你喜欢
    • 2015-12-03
    • 2014-07-21
    • 2014-03-27
    • 2016-05-26
    • 2021-03-12
    • 2018-06-16
    • 1970-01-01
    • 2015-06-18
    • 2017-08-03
    相关资源
    最近更新 更多