- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 1:m
Subitem
之间的关系和 SubitemColor
.现在我想在 onFlush
中保存一些数据修改 SubitemColor
的一些数据.问题:执行 Controller 时,我收到以下错误消息,您也可以在下面看到:
An exception occurred while executing 'INSERT INTO SubitemColor (code, precio, pvp_recommended, file_name, activado, en_stock, area, lets_fix_width_or_height_in_list, lets_fix_width_or_height_in_show, position_level_0, position_level_1, position_brand, subitem_id, color_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [2]:
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
public function onFlush(Event \OnFlushEventArgs $eventArgs)
{
$em = $eventArgs->getEntityManager();
$uow = $em->getUnitOfWork();
$updates = $uow->getScheduledEntityUpdates();
$insertions = $uow->getScheduledEntityInsertions();
/////////// NEW SUBITEM_IMAGE OR SUBITEM_COLOR UPLOADED //////////
foreach ($insertions as $entity) {
if ($entity instanceof SubitemColor) {
//$entity->setLetsFixWidthOrHeightInList("jander");
//$entity->setLetsFixWidthOrHeightInList('width');
//$entity->setLetsFixWidthOrHeightInShow('width');
$entity->setEnStock(2);
$metaSubitemColor = $em->getClassMetadata(get_class($entity));
$uow->computeChangeSet($metaSubitemColor, $entity);
$uow->persist($entity);
}
}
}
//controller - controller - controller - controller
$subitem = new Subitem();
$em = $this->getDoctrine()->getManager();
$subitem->setNombre("jls");
$subitemColor = new SubitemColor();
$subitem->addSubitemColor($subitemColor);
$em->persist($subitem);
$em->persist($subitemColor);
$metaSubitem = $em->getClassMetadata(get_class($subitem));
$em->flush();
最佳答案
使用recomputeSingleEntityChangeSet
方法而不是 computeChangeSet
computeChangeSet
方法应该仅由学说调用,并为每个标记为在刷新操作中保持持久性的实体调用一次。
当您从数据库中加载实体时,原则将其数据保存到 originalEntityData
数组,然后检查实体是否不存在原始数据,然后该实体是新的,并且学说将其当前数据保存为原始数据,并用每个字段值填充更改集。
第二次调用computeChangeSet
学说具有新创建实体的原始数据,并且仅计算自上次调用 computeChangeSet
以来更改的字段的更改集方法。
这就是为什么你不应该调用 computeChangeSet
.
关于symfony2 + 教义 : modify a child entity on `onFlush` : "Invalid parameter number: number of bound variables does not match number of tokens",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31144447/
我尝试使用 onFlush Doctrine 中的事件以持久化一个新实体,但在尝试持久化时会导致无限循环。这是我在监听器中所做的: $countusers = $em->getRepository('
我想为我的学说模型添加一个安全层。为了能够在 SQL 级别的原则过滤器中添加权限检查,我必须维护一些数据库表,其中包含为每个实体计算的访问控制 token 的缓存。 现在我必须更新这些表,在某些情况下
我在 onFlush 事件中使用的 \Doctrine\ORM\UnitOfWork::getScheduledEntityDeletions 有一个奇怪的问题 foreach ($unitOfWor
您好,我有一个 onFlush 监听器: getEntityManager(); $uow = $em->getUnitOfWork(); foreach ($uow-
考虑以下模式: [Work] id tags ManyToMany(targetEntity="Tag", inversedBy="works", cascade={"persist"}) [Tag]
我正在尝试使用 KnpSnappyBundle 生成 Pdf 并在生成我的比尔实体时保存原则中的位置。 为此,我需要打样服务,但我无法进入实体内部。 我读入了 EventListener 并试图让它工
我正在尝试实现一项功能,让用户指定其相互状态并选择另一个用户,就像 Facebook 中的用户一样。 我的数据库架构如下: UserInfo 实体: class UserInfo { /**
我有这个实体: apples = new \Doctrine\Common\Collections\ArrayCollection(); $this->pigs = new \Doct
我已经为 Doctrine onFlush 事件监听器创建了一个服务。在这个监听器中,我想引用我在另一个 服务中的一个常用函数来检查实体的快捷路径。 other 服务使用实体管理器来执行此操作,因此该
我可以在 Doctrine2 的 onFlush eventListerner 中访问更新的文档。我想要完整的旧文档以旧状态将其存储在其他地方。 public function onFlush(
我有一个 1:m Subitem 之间的关系和 SubitemColor .现在我想在 onFlush 中保存一些数据修改 SubitemColor 的一些数据.问题:执行 Controller 时,
我是一名优秀的程序员,十分优秀!