php - 如何在 Laravel 中存储关联数组

标签 php arrays laravel

我是 Laravel 的新手,我想将这个数组存储在数据库中。

这是我的数组的 php 代码:

$socialNetwork = array();
$socialNetwork[0]["name"]= "Facebook";
$socialNetwork[0]["account"]= "facebook_account";
$socialNetwork[1]["name"]= "Twitter";
$socialNetwork[1]["account"]= "twitter_account";
$socialNetwork[2]["name"]= "Instagram";
$socialNetwork[2]["account"]= "insta_account";

var_dump() 看起来像这样:

array(3) {
  [0] => array(2) {
    ["name"] => string(8) "Facebook"
    ["account"] => string(16) "facebook_account"
  }
  [1] => array(2) {
    ["name"] => string(7) "Twitter"
    ["account"] => string(15) "twitter_account"
  }
  [2] => array(2) {
    ["name"] => string(9) "Instagram"
    ["account"] => string(13) "insta_account"
  }
}

我已经尝试了几种方法,但我无法让它工作!

请帮忙写代码。表名是socialAccounts

最佳答案

在您的数据库中为该字段添加一列; JSON 或 TEXT 类型将完成这项工作。

接下来,您应该将列添加到 SocialAccount 模型的 $casts 数组中:

protected $casts = [
    'facebook_account' => 'array',
];

现在,无论何时检索此值,它都会为您反序列化。

要存储值,只需使用json_encode():

$social_account->facebook_account = json_encode($facebookArrayData);
$social_account->save();

您可以在文档中阅读更多关于属性转换的信息; https://laravel.com/docs/7.x/eloquent-mutators#attribute-casting

关于php - 如何在 Laravel 中存储关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61311936/

相关文章:

php - 如果图像太小,使用 PHP 调整图像大小

arrays - 过滤器以在 Angular js 中对 JSON 数据进行排序

java - 如何在 PHP 中解码 Java 流

laravel - 为什么我的异常没有被 Laravel 的 destroy 方法捕获?

php - 向 MySql 插入新记录时 SQL 语法错误

javascript - 使用 Javascript、Php 和 MySQL 进行分页

php - 30 秒后出现 502 Bad gateway 错误

C++数组问题

arrays - 二进制搜索算法实现

laravel - 如何获取公共(public)目录?