PHP强制类型定义数组,php – 如何强制Doctrine更新数组类型字段?
我有一个带有数组类型字段的Doctrine实体:
/**
* @ORM\Table()
*/
class MyEntity
{
(...)
/**
* @var array $items
*
* @ORM\Column( type="array" )
*/
private $items;
/**
* @param SomeItem $item
*/
public function addItem(SomeItem $item)
{
$this->items[] = $item;
}
(...)
}
如果我将元素添加到数组,此代码正常工作:
$myEntityObject->addItems(new SomeItem());
$EntityManager->persist($myEntityObject);
$EntityManager->flush();
$myEntityObject使用正确的数据保存到数据库(数组被序列化,并在查询数据库时反序列化).
不幸的是,当我在不改变该数组大小的情况下更改数组中的一个对象时,如果我试图将更改保存到数据库,则Doctrine不会执行任何操作.
$items = $myEntityObject->getItems();
$items[0]->setSomething(123);
$myEntityObject->setItems($items);
$EntityManager->persist($myEntityObject);
$EntityManager->flush();
print_r($myEntityObject);
虽然,该代码的最后一行中的print_r显示更改的对象的数据,但是如果数组大小没有更改,则Doctrine不知道数组内的某些内容已更改.有没有办法强制Doctrine保存在该字段中所做的更改(或者轻轻地告知它该字段中需要保存的更改)?
只是在文档中找到了解决我的问题的方法:
它需要对代码进行大量更改,但它可以正常工作.有人知道如何保留其他字段的默认跟踪策略,并仅将NotifyPropertyChanged用于存储数组的字段吗?
PHP强制类型定义数组,php – 如何强制Doctrine更新数组类型字段?相关推荐
- XML之文档类型定义和合法性(转)
来至:liang--liang博客:http://www.cnblogs.com/liang--liang/archive/2008/01/15/1039277.html 好牛 XML被作为一种元标记 ...
- typescript 基础类型定义
1.typescript 类型定义 代码如下(示例): //基础类型/*** 1. 布尔 boolean* 2. 数字 number* 3. 字符串 string* 4. 数组 array* 5. 元 ...
- typescript(四)ts中函数的参数和返回值的类型定义
前面我们讲到过ts的静态类型定义中的函数类型定义,先来回顾下: const fnA: () => string = () => { return '1' } const fnB: () = ...
- JavaScript 和 TypeScript 交叉口 —— 类型定义文件(*.d.ts)
在 <从 JavaScript 到 TypeScript 系列> 文章我们已经学习了 TypeScript 相关的知识. TypeScript 的核心在于静态类型,我们在编写 TS 的时候 ...
- 为什么阿里巴巴强制要求使用包装类型定义属性?
欢迎关注方志朋的博客,回复"666"获面试宝典 在阿里巴巴Java开发手册中,对于POJO中如何选择变量的类型也有着一些规定: 这里强制要求使用包装类型,原因是什么呢? 我们来看一 ...
- nvarchar转换为int类型失败_2.2 C++强制类型转换 | 将3.3转换为整型输出
强制类型转换运算符 在C++的表达式中,不同的数据类型会自动地转换类型进行运算,但有的时候也需要程序员自己进行强制类型转换,将某个表达式转换成自己所需要的数据类型. 强制类型转换的一般形式为 (类型名 ...
- 【C 语言】数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )
文章目录 总结 一.使用 数组类型* 定义数组指针 二.完整代码示例 总结 typedef int(ArrayType)[3];ArrayType *p = NULL; 一.使用 数组类型* 定义数组 ...
- 实验5.6 定义包含5个元素的对象数组,每个元素都是Employee类型的对象
题目 定义包含5个元素的对象数组,每个元素都是Employee类型的对象. Employee类,其中包括姓名.街道地址.城市和邮编等属性,以及change_name()和display()等函数.di ...
- Typescript 下 Mongoose 外键类型外键数组类型定义类型保护联合类型理解
最近给项目上Typescript,记录在迁移的过程中遇到的一个问题. 问题背景 下面这段代码 定义了一个User 接口, Company接口, Order接口以及相应的mongoose model. ...
最新文章
- 用户一亿的网易新闻客户端质量如何?
- Postman安装与使用(网络请求神器)--post、get请求
- linux强制删除后登录不了,【已解决】更新之后无法登录
- python flask框架是什么_Python Flask框架详解
- 设置文件为源文件(和src一样)
- linux把profile文件删了怎么办,误删Profile后的处理
- 基于用户点击行为的数字图书搜索系统研究与实现 - 中国优秀硕士学位论文全文数据库...
- java贪吃蛇代码_java贪吃蛇游戏实现代码
- php获取input file路径,input上传文件获取路径为C:\fakepath\文件名
- flash花屏 html,电脑中Firefox火狐浏览器出现卡顿、花屏、Flash崩溃等问题的解决方法...
- 韩立刚《计算机网络》| 第5章 传输层
- 完全兼容ADI的ADM2582E/ADM2587E的(MORNSUN)TD(H)541S485H
- uniapp 打开第三方APP
- dble安装zk及配置mysql主从模式,在已有mysql存在数据升级mysql配置
- 病痰饮者不能率以温药和之
- Fleck WebSocket使用
- 【如何20秒内进入XP系统】
- Python 【爬虫3】_微信小程序_小游戏数据助手数据爬取
- 游戏思考系列02:技能伤害计算流程(不涉及buff)
- C 结构体 struct 详解