Laravel mongodb 保存数据维护值类型

问题描述 投票:0回答:1

我需要保存一些数据用于缓存目的。问题是这些数据可能包含 std 对象或关联数组。 “创建”方法将所有内容保存为关联数组,因此当我需要此缓存数据时,我会遇到问题,因为尝试将属性作为关联数组上的对象读取,反之亦然。 一个例子:

CachedData::create([
   'type' => 'pr',
   'stage' => 'fetching',
   'data' => [
       'name' => 'pr_name',
       'history' => [
            0 => {            //This is a representation of std object
                 +"price" => 10.00,
                 +"datetime" => "2023-10-22 01:32:00"
            }
       ]
   ]
]) 

当我获取数据时,结果是:

[
   'name' => 'pr_name'
   'history' => [      
      0 => [             //Array instead of object
          'price' => 10.00,
          'datetime' => "2023-10-22 01:32:00"
      ]
   ]
]

数据总是可变的。那么有没有办法让值类型与保存时保持一致呢?

laravel mongodb
1个回答
0
投票

我找到了路。只需在保存之前序列化数据即可:

CachedData::create(['data' => serialize($data)]);

然后你可以在需要的时候反序列化:

unserialize(CachedData::get()->data);

它将保持您的对象与保存时一样

© www.soinside.com 2019 - 2024. All rights reserved.