我正在使用Symfony2和FOSUserBundle。
我序列化了一个数组并将其保存为数组类型。如何将关联数组保存到数据库中?
我收到错误......:EntityManager#persist() expects parameter 1 to be an entity object, array given.
或EntityManager#persist() expects parameter 1 to be an entity object, string given.
...取决于我坚持的数组。
$this->userCartArrayValues = serialize($cartArray);
$em->persist($this->userCartArrayValues);
// $em->persist($cartArray);
$em->flush();
var_dump($this->userCartArrayValues);
感谢任何帮助,谢谢!
答案 0 :(得分:0)
你可以将一个数组转换为一个像这样的对象......
$object = json_decode(json_encode($array), FALSE);
答案 1 :(得分:0)
Persist方法只接受实体对象。您无法发送序列化数据。我认为最好的解决方案是直接获取实体对象而不是数组的数据。或者也许您也可以使用JMSSerilizerBundle。
$foo = new Foo();
$foo->setBar($cartArray['bar']);
$em->persist($foo);
$em->flush();
或者这有点乱,但你可以创建新的实体对象并设置值然后你可以坚持。